首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C# 常見排序演算法寫法與效能比較(三):快速排序實作

     編輯:關於C語言

快速排序核心思想

以某記錄為基準點,將待排序列分為兩部分:一部分所有關鍵碼大於等於基準點,另一部分小於等於基準點。遞迴進行直到整個序列有序。

程式碼實作

public class QuickSort : IAction {
 public void Action() {
   int[] array = Program.RandomArray();
   QuickSortArray(array, 0, array.Length - 1);
 }
 private void QuickSortArray(int[] arr, int low, int high) {
   int i = low, j = high, tmp = arr[low];
   while (low < high) {
     while (low < high && arr[high] >= tmp) --high;
     arr[low] = arr[high];
     while (low < high && arr[low] <= tmp) ++low;
     arr[high] = arr[low];
     --high;
   }
   arr[low] = tmp;
   if (i < low - 1) QuickSortArray(arr, i, low - 1);
   if (j > low + 1) QuickSortArray(arr, low + 1, j);
 }
}

下篇將進行效能測試比較。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved