快速排序:首先选定一组的第一个元素为基准数,第一次排后实现基准数前面的数都小于它,后面的数都大于它,分成两组后,每组再递归。
举例如下(排一次):
(1)原始数据:6 2 7 3 8 9 i=0, j=5
(2)以6为基准,将j减小,比6小就交换:3 2 7 6 8 9 i=0, j=3
(3)以6为基准,将i增大,比6大就交换:3 2 6 7 8 9 i=2, j=3
/*java实现------------------------------------*/
package pack;
public class Main {
public static void main(String[] args) {
int[] arr = {57,68,59,52,72,28,96,33,24};
quickSort(arr,0,arr.length-1);
for(int i=0;i<arr.length;i++)
sys(arr[i]);
}
public static void sys(Object obj) {
System.out.println(obj);
}
public static void quickSort(int[] a,int low,int high) {
if(low>=high) //不写就是死循环
return ;
int first = low;
int last = high;
int key = a[first]; /

本文介绍了快速排序算法的原理,通过一个具体的例子展示排序过程。首先选取数组第一个元素作为基准数,经过一次排序,使得基准数位于其最终位置,将数组分为两部分,然后对这两部分递归进行相同操作,直至所有元素排序完成。示例中,初始数组为6 2 7 3 8 9,经过一次划分后变为3 2 6 7 8 9。
订阅专栏 解锁全文
764

被折叠的 条评论
为什么被折叠?



