[csharp] 大多數程序員在寫排序算法的時候,都會采用冒泡算法,為什麼了?因為這個算法最簡單,最容易理解,也最容易寫。 但是,冒泡算法效率並不高,今天就寫一個c#的快速排序算法。 廢話不多說,先直接上代碼: [csharp] using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace QuickSortDemo { class QuickSort { public void Sort(int[] arr) { sortMethd(arr, 0, arr.Length - 1); } private void sortMethd(int[] arr, int left, int right) { if (left < right) { int key = arr[(left + right) / 2]; int i = left-1 ; int j = right + 1; while (true) { /* 這裡是關鍵的地方 * */ while (arr[++i] < key ) ; while (arr[--j] > key ) ; if (i >= j) { break; } swap(arr, i, j); } sortMethd(arr, left, i - 1); sortMethd(arr, j+1 , right); } } private void swap(int[] arr, int i, int j) { int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } } }