快速排序算法(java实现)

public class HelloJava{
 public static void main(String[] args) {
  int[] arr1 = new int[] {45,40,90,30,80,70,50};
  System.out.println("排序前: ");
  for(int i=0; i<arr1.length; i++) {
      System.out.print(arr1[i]+" ");
  }
  System.out.println();
  System.out.println("快速排序后:");
  quickSort(arr1, 0, arr1.length-1);
  
  int[] arr2 = new int[] {11,52,4,5,65,4,2,1,45};
  System.out.println("排序前: ");
  for(int i=0; i<arr2.length; i++) {
      System.out.print(arr2[i]+" ");
  }
  System.out.println();
  System.out.println("快速排序后:");
  quickSort(arr2, 0, arr2.length-1);
 }
 private static int partition(int[] array, int low, int high) {
  int temp = array[low];
  while(low<high) {
   while(low < high && array[high] >= temp)
    high--;
      array[low] = array[high];
      while(low < high && array[low] <= temp)
       low++;
      array[high] = array[low];
  }
  array[low] = temp;
  return low;  
 }
 public static void quickSort(int[] array, int low, int high) {
  if(low < high) {
   int pa =partition(array, low, high);
   for(int i=0; i<array.length; i++) {
       System.out.print(array[i]+" ");
   }
   System.out.println("   "+"返回枢轴元素位置:"+pa);
   quickSort(array, low, pa-1);
   quickSort(array, pa+1, high);
  } 
 }
}

猜你喜欢

转载自www.cnblogs.com/guangxiaolin/p/9326328.html