快速排序(Java)
阿新 • • 發佈:2019-02-23
amp ont 一個 nbsp 排序 ati pan 比較 java
快排,取基準元素(一般為數組第一個元素),同時從右、左向中間與基準元素比較,如果右邊元素小於基準元素,則將該元素調到左邊,如果左邊元素大於基準元素,則將該元素調到右邊,直至左右下標重疊,此時回填基準元素,滿足該基準元素左邊數組小於該值,右邊數組大於該值。
//快排 while(i < j){ while(i < j && base < array[j]){ j--; } if(i < j){//此時,右邊元素小於基準元素,將該值調往左邊 array[i++] = array[j]; } while(i < j && base > array[i]){ i++; } if(i < j){//此時,左邊元素大於基準元素,將該值調往右邊 array[j--] = array[i]; } } array[i] = base; quickSort(array,low,i-1);//遞歸排序左邊數組 quickSort(array,i+1,height);//遞歸排序右邊數組 } |
快速排序(Java)