快速排序(Quicksort),因其排序之快而得名,虽然Ta的平均时间复杂度也是O(nlgn),但是从后续仿真结果看,TA要比归并排序和堆排序都要快。

快速排序也用到了分治思想。

(一)算法实现

 1 protected void quicksort(int[] array, int first, int last) {
 2 
 3         int pivot = array[first];
 4         int i = first;
 5         int j = last - 1;
 6         boolean serachBig = true;
 7         while (i < j) {
 8             if (serachBig) {
 9                 if (array[j] < pivot) {
10                     array[i] = array[j];
11                     i++;
12                     serachBig = false;
13                 } else {
14                     j--;
15                 }
16             } else {
17                 if (array[i] > pivot) {
18                     array[j] = array[i];
19                     j--;
20                     serachBig = true;
21                 } else {
22                     i++;
23                 }
24             }
25         }
26         array[i] = pivot;
27 
28         if (i - first > 1) {
29             quicksort(array, first, i);
30         }
31         if (last - i > 2) {
32             quicksort(array, i + 1, last);
33         }
34     }
Quicksort

相关文章:

  • 2021-04-18
  • 2022-12-23
  • 2022-12-23
  • 2021-12-10
  • 2022-01-03
  • 2021-07-05
  • 2021-11-08
  • 2021-06-02
猜你喜欢
  • 2021-05-27
  • 2021-10-04
  • 2021-08-28
  • 2022-12-23
  • 2021-09-23
  • 2020-05-13
相关资源
相似解决方案