Java 快速排序算法实现

 

(1)基本思想:选择一个基准元素,通常选择第一个元素或者最后一个元素,通过一趟扫描,将待排序列分成两部分,一部分比基准元素小,一部分大于等于基准元素,此时基准元素在其排好序后的正确位置,然后再用同样的方法递归地排序划分的两部分。

(2)实例:

Java 快速排序算法实现

 

 

  1. package cc.javar;
  2. import java.util.Arrays;
  3. public class QuickSort {
  4.  public static void sort(int a[], int low, int hight) {
  5.  int i, j, index;
  6.  if (low > hight) {
  7.  return;
  8.  }
  9.  i = low;
  10.  j = hight;
  11.  index = a[i]; // 用子表的第一个记录做基准
  12.  while (i < j) { // 从表的两端交替向中间扫描
  13.  while (i < j && a[j] >= index)
  14.  j--;
  15.  if (i < j)
  16.  a[i++] = a[j];// 用比基准小的记录替换低位记录
  17.  while (i < j && a[i] < index)
  18.  i++;
  19.  if (i < j) // 用比基准大的记录替换高位记录
  20.  a[j--] = a[i];
  21.  }
  22.  a[i] = index;// 将基准数值替换回 a[i]
  23.  sort(a, low, i - 1); // 对低子表进行递归排序
  24.  sort(a, i + 1, hight); // 对高子表进行递归排序
  25. }
  26. public static void quickSort(int a[]) {
  27.  sort(a, 0, a.length - 1);
  28.  }
  29. public static void main(String[] args) {
  30. int a[] = { 4938659776132745 };
  31.  quickSort(a);
  32.  System.out.println(Arrays.toString(a));
  33.  }
  34. }
腾讯云服务器安全可靠高性能,多种配置供您选择
avatar

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: