Java实现快速排序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java实现快速排序相关的知识,希望对你有一定的参考价值。

找工作时笔试做的一塌糊涂,连快速排序都不会了。

回来上网搜了半天,很多代码和讲解看完还是一知半解。而且包括百度百科在内,用eclipse一跑,全都有错。。。。。

于是决定还是自己搞吧。

在彻底理解了快速排序的思想后,写了如下自己能理解的代码:

 1     //快速排序
 2     void quickSort(int a[],int l,int r){
 3         //声明与初始化
 4         int i=l;
 5         int j=r;
 6         int key=a[i];//取出第一个元素作为基准
 7         
 8         //判断方法结束调用
 9         if(i>=j){
10             return;
11         }
12         
13         //一趟排序
14         while(i<j){
15             //从右向左与key比较
16             while(i<j&&key<=a[j]){
17                 j--;
18             }
19             //直到出现第一个key>a[j],两者交换
20             if(i<j){
21                 a[i]=a[j];
22                 a[j]=key;
23             }
24             
25             //从左向右与key比较
26             while(i<j&&key>=a[i]){
27                 i++;
28             }
29             //直到出现第一个key<a[i]
30             if(i<j){
31                 a[j]=a[i];
32                 a[i]=key;
33             }
34         }
35         
36         //此时有
37 //        a[i]=key;//因为我已经在while循环外声明了i和key,所以这里不需要再次赋值
38         
39         //递归对key左右子数组排序,a[i]不予考虑
40         quickSort(a,l,i-1);
41         quickSort(a,i+1,r);
42     }

博主刚毕业,还在找工作中,这是我的第一篇博文。

水平显然是菜鸟级别,也许连菜鸟都不是。。

很多写代码的规范还不懂,欢迎大家一起交流~

以上是关于Java实现快速排序的主要内容,如果未能解决你的问题,请参考以下文章

数据结构-排序之快速排序(使用Java代码实现)

数据结构-排序之快速排序(使用Java代码实现)

快速排序Java代码简洁实现

Java实现快速排序详细代码

高级排序java实现(希尔归并快速)

2021-10-21java:六千字快速复习七种常用排序