码迷,mamicode.com
首页 > 编程语言 > 详细

Java实现快速排序

时间:2017-07-01 14:34:39      阅读:149      评论:0      收藏:0      [点我收藏+]

标签:循环   而且   元素   eclips   java实现   quick   快速排序   工作   while   

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

回来上网搜了半天,很多代码和讲解看完还是一知半解。而且包括百度百科在内,用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实现快速排序

标签:循环   而且   元素   eclips   java实现   quick   快速排序   工作   while   

原文地址:http://www.cnblogs.com/qinscraft/p/7102175.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!