排序算法详解 C# 版
概述
一般使用的八大排序算法是:插入排序、选择排序、冒泡排序、希尔排序、归并排序、快速排序、堆排序、基数排序,每个方法有其适合的使用场景,可以根据具体数据进行选择.
冒泡排序
//冒泡排序,比较相临两个数的大小,如 lst[i]>lst[i+1],则互换位置
static int[] BubbleSort(int[] lst)
{
for (int i = 0; i < lst.Length - 1; i++)
{
for (int j = 0; j < lst.Length; j++)
{
if (lst[i] > lst[j])
{
int temp = lst[j];
lst[j] = lst[i];
lst[i] = temp;
}
}
}
return lst;
}
选择排序
//选择排序,找最大/最小值加入列表
static int[] SelectSort(int[] lst)
{
for (int i = 0; i < lst.Length - 1; i++)
{
int minVal = lst[i];
int minIndex = i;
for (int j = i + 1; j < lst.Length; j++)
{
if (minVal > lst[j])
{
minIndex = j;
minVal = lst[j];
}
}
int temp = lst[i];
lst[i] = minVal;
lst[minIndex] = temp;
}
return lst;
}