while (low <= high) {

    while (low <= right && pivot >= arr[low]) {

        low++;

    }

   

    while (high > left && pivot <= arr[high]) {

        high--;

    }

   

    if (low < high) {

        int temp = arr[low];

        arr[low] = arr[high];

        arr[high] = temp;

    }

}


이거 퀵정렬에서 배열요소가 같은값일때의 반복문입니다. 제가 혼돈이온? 코드부문은 while문 의 반복중 인덱스값이 초과하지않게끔 범위를 제한할려고 할때입니다


while (low < right && pivot >= arr[low]) {

        low++; 


여기 코드 대로면


만약,arr[3,3,3,3]  의 배열이 있다고 가정하면

인덱스값 4까지 가지않음?


그러서 while(low<right &&어쩌구저쩌구)  로 바꾸는게 맞는거아니먀?