一、快速排序是(挖坑法)是挖坑填数 + 分治来实现。
1.快速排序的基本思想:
1). 先从数列中取出一个数作为基准数。
2). 分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边。
3). 再对左右区间重复第二步,直到各区间只有一个数。
2.快速排序的图示:
图片来源自网络
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);
}
}
网友评论