1、算法思想
通过一趟排序将要排序的数据分割成独立的两部分,其中左边的部分的所有数据都比右边的部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。
2、算法实现
package test; public class QuickSort { public static void main(String[] args) { int[] n ={1,3,6,2,9,6,8,7}; quicksort(n,0,7); for (int i : n) { System.out.print(i+"\t"); } } public static void quicksort(int[] n,int left,int right){ int dp; if(left<right){ dp = partition(n,left,right); quicksort(n,left,dp-1); quicksort(n,dp+1,right); } } public static int partition(int[] n,int left,int right) { int pivot = n[left]; while(left<right){ while(left<right&&n[right]>=pivot) right--; if(left<right) n[left++]=n[right]; while(left<right&&n[left]<=pivot) left++; if(left<right) n[right--]=n[left]; } n[left]=pivot; return left; } }
时间: 2024-10-25 15:45:49