首页 > 代码库 > 排序算法
排序算法
快速排序算法:
通过一次排序将数组分为独立的两部分,一部分均比关键字小,另一部分均比关键字大,再递归对每部分进行关键字排序。
关键字排序:把数组第一个数拿出来做关键字key,数组前后分别设置low,hig指针;将key与hig指针的值从后往前比较,如果key<指针hig的值,hig--,反之交换值;key继续与low指针的值从前往后遍历,若key>指针low的值,low++,反之交换值;直到完成排序。
1 public class FastOrder { 2 3 public static void main(String[] args) { 4 FastOrder p=new FastOrder(); 5 int[] arr={45,1,6,8,65,26,46,22}; 6 p.fastsort(arr, 0, arr.length-1); 7 for(int i=0;i<arr.length;i++){ 8 System.out.print(arr[i]+" "); 9 } 10 } 11 /*关键字key排序*/ 12 public int partition(int[] arr, int low, int hig){ 13 int key=arr[low];//选数字第一个数为关键字 14 while(low<hig){ 15 while(low<hig&&arr[hig]>key){ 16 hig--; 17 } 18 arr[low]=arr[hig]; 19 while(low<hig&&arr[low]<key){ 20 low++; 21 } 22 arr[hig]=arr[low]; 23 } 24 arr[low]=key; 25 return low; 26 } 27 /*递归完成快速排序*/ 28 public void fastsort(int[] arr,int low, int hig){ 29 if(low<hig){ 30 int mid=partition(arr,low,hig); 31 fastsort(arr, low,mid-1); 32 fastsort(arr,mid+1,hig); 33 } 34 } 35 }
排序算法
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。