아래의 빠른 정렬 코드를 실행하려고하면 루프가 무한 루프가됩니다. 마지막 반복은 무한 루프가됩니다.Quicksort Java 코드가 무한 루프로 바뀝니다
class QuickSort {
public static void main(String[] args) {
int arr[] = {10, 7, 8, 9, 1, 5,2};
QuickSort ob = new QuickSort();
ob.sort(arr, 0,arr.length-1);
for(int s:arr){
System.out.print(" "+s);
}
}
int partition(int[] arr,int l,int h){
int piv = arr[h];
int i=l-1;
for(int j=l;j<=h-1;j++){
if(arr[j] <= piv){
i++;
int temp = arr[i];
arr[i]=arr[j];
arr[j]=temp;
}
}
int tp = arr[i+1];
arr[i+1]=arr[h];
arr[h]=tp;
return i+1;
}
void sort(int[] arr,int l,int h){
while(l<h){
int p = partition(arr, l, h);
sort(arr, l, p-1);
sort(arr, p+1, h);
}
}
}
어디에서 잘못 되었나요?
무슨 일이 일어나는지 디버거를 사용하십시오. – Jens
코드 디버깅을 시도 했습니까? – JonK
당신은 재귀 메서드의 기본을 잊었 ... 종료 조건 – AxelH