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

快速排序 QuickSort

时间:2017-10-10 16:36:11      阅读:143      评论:0      收藏:0      [点我收藏+]

标签:developer   快速   eof   class   while   int   .com   循环   span   

学习链接:坐在马桶上看算法:快速排序

Java代码:

 1 class QuickSort{
 2     int [] sortAns;
 3     
 4     QuickSort(){}
 5     
 6     QuickSort(int[] nums){
 7         QSort(nums,0,nums.length-1);
 8         sortAns=nums;
 9     }
10     
11     protected void QSort(int[] nums,int a,int b){
12         if(a<b){
13             int pos=patition(nums,a,b);
14             QSort(nums,a,pos-1);
15             QSort(nums,pos+1,b);
16         }
17     }
18     int patition(int[] nums,int a,int b){
19         int init=a;
20         while(b>a){
21             while(nums[b]>nums[init] && b>a){
22                 b--;//右侧哨兵左移
23             }
24             while(nums[init]>=nums[a] && b>a){//nums[init]>=nums[a]
25                 a++;//左侧哨兵右移                通过》=,在第一次循环时就使哨兵离开基准数
26             }
27             if(a<b) swap(nums,a,b);
28         }
29         swap(nums,init,a);//基准数归位
30         return a;
31     }
32     
33     void swap(int[] nums,int a,int b){
34         int tmp=nums[a];
35         nums[a]=nums[b];
36         nums[b]=tmp;
37     }
38      public String toString(){
39          int i;
40          String str=new String("");
41          for(i=0;i<sortAns.length;i++) str+=String.valueOf(sortAns[i])+" ";
42          str+="\n";
43          return str;
44      }
45      
46 }

 

快速排序 QuickSort

标签:developer   快速   eof   class   while   int   .com   循环   span   

原文地址:http://www.cnblogs.com/TQCAI/p/7645659.html

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