快速排序_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > 快速排序

快速排序

 2011/12/27 9:07:03  黎明lm  http://51mst.iteye.com  我要评论(0)
  • 摘要:快速排序(Quicksort)是对冒泡排序的一种改进。由C.A.R.Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。java代码实现:int[]a={7,22,40,6,13,5,8};inti=0;k=a.length-1;intcata=a[0];while(i!=j){while(a[j]>
  • 标签:

快速排序(Quicksort)是对冒泡排序的一种改进。

由C. A. R. Hoare在1962年提出。
它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小
,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。


java代码实现:

int[]a ={7,22,40,6,13,5,8};

int i =0;k=a.length-1;

int cata = a[0];

while(i !=j){
 
   while(a[j] > k){
  
     j--;
  
   }
   int temp = k;
   k= a[j];
   a[j]=temp;
  
   while(a[i] <k){
      i++;
   }
   int temp1 = k;
   k=a[i];
   a[i]=k;
  
   if(i ==j){
  
   }
  
 
}

原理:

7,22,40,6,13,5,8

初始化的时候 i=0,key=7(可以任选),j=length-1

1.首先j从右像左走,遇到比key小的值的时候则将Vj(下表j代表的数组值) 和 key交换
2.i从左往右走,遇到比key大的值的时候则将Vi和key交换

第一次j行走之后的值:

    key(7)
    i(0)           j
    7,22,40,6,13,5,8
   
    1,当j走到5 的时候发现 5比key 小 ,则交换Vj=5 和key=7 的位置变为:
   
    5,22,40,6,13,7,8
   
    2,j走完之后则i进行行走,i从左往右走,当走到Vi=22的时候 发现22比 key大,那么交换 Vi 和key的位置,数组变为
   
    5,7,40,6,13,22,8
   
    重复上面的过程1,2知道将 比key小的数都放在key的左边,比key大的数都放在key的右边位置
  • 相关文章
发表评论
用户名: 匿名