一努潘、快速排序是(挖坑法)是挖坑填數(shù) + 分治來實現(xiàn)。
1.快速排序的基本思想:
1). 先從數(shù)列中取出一個數(shù)作為基準(zhǔn)數(shù)疯坤。
2). 分區(qū)過程,將比這個數(shù)大的數(shù)全放到它的右邊压怠,小于或等于它的數(shù)全放到它的左邊。
3). 再對左右區(qū)間重復(fù)第二步菌瘫,直到各區(qū)間只有一個數(shù)。
2.快速排序的圖示:
圖片來源自網(wǎng)絡(luò)
3.快速排序的算法
public class QuickSort {
public static void main(String[] args) {
int [] a = {1,6,8,7,3,5,16,4,8,36,13,44};
QKSourt(a,0,a.length-1);
for (int i:a) {
System.out.print(i + " ");
}
}
private static void QKSourt(int[] a, int start, int end) {
if (a.length < 0){
return ;
}
if (start >= end){
return ;
}
int left = start;
int right = end;
int temp = a[left];
while (left < right){
while (left < right && a[right] >= temp){
right -- ;
}
a[left] = a[right];
while (left < right && a[left] <= temp){
left ++ ;
}
a[right] = a[left];
}
a[left] = temp;
System.out.println(Arrays.toString(a));
QKSourt(a, start, left -1);
QKSourt(a,left+1,end);
}
}