排序算法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了排序算法相关的知识,希望对你有一定的参考价值。
快速排序算法:
通过一次排序将数组分为独立的两部分,一部分均比关键字小,另一部分均比关键字大,再递归对每部分进行关键字排序。
关键字排序:把数组第一个数拿出来做关键字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 }
以上是关于排序算法的主要内容,如果未能解决你的问题,请参考以下文章