这是给C#初学者的教程。以前有教学需要想出来的,现在重新写了一遍。
static void QuickSort<T>(List<T> list) where T: IComparable<T>//约束类型实现可比较的接口
{
if (list.Count<2)//列表元素少于2个不排序
return;
T mid = list[0];//提取第0个元素作为中间值
list.RemoveAt(0);
List<T> bigList = new List<T>();
for (int i = list.Count-1; i >=0 ; i--)//从尾到头循环列表
{
if (mid.CompareTo(list[i])<0)//小于0则比中间值大将放入“大值列表”
{
bigList.Add(list[i]);
list.RemoveAt(i);
}
}
QuickSort(list);//剩下的是小于等于中间值的元素,把他们再次排序
QuickSort(bigList);//这是大于中间值的元素,把他们再次排序
list.Add(mid);//合并
list.AddRange(bigList);
}