也没专门去研究过排序。只是平常用过这两种和这两种的变形:冒泡和快速。收录一下用的时候直接Copy就OK。
public class Method { public static void QuickSort(List<int> arrays, int low, int high) { int i = low; int j = high; if (low < high) { int key = arrays[low]; while (i < j) { while (i < j && arrays[j] > key) { j--; } if (i < j) { arrays[i] = arrays[j]; i++; } while (i < j && arrays[i] < key) { i++; } if (i < j) { arrays[j] = arrays[i]; j--; } } arrays[i] = key; QuickSort(arrays, low, i - 1); QuickSort(arrays, i + 1, high); } } public static void Bubble(List<int> sortList) { if (sortList == null || sortList.Count <= 0) { return; } int flag = 1; int i, j; int itemCount = sortList.Count; int itemTemp; for (i = 1; i < itemCount && flag == 1; i++) { flag = 0; for (j = 0; j < itemCount - i; j++) { int countfore = sortList[j]; int countback = sortList[j + 1]; if (countfore > countback) { flag = 1; itemTemp = sortList[j]; sortList[j] = sortList[j + 1]; sortList[j + 1] = itemTemp; } } } } }