List<int> list = new List<int> { 33, 22, 1, 7, 66, 48, 95, 93, 92, 91, 46 };
#region 冒泡排序
public void BubbleSort()
{
for (int i = 0; i < list.Count; i++)
{
for (int j = i; j < list.Count; j++)
{
if (list[i] > list[j])
{
int tmp = list[j];
list[j] = list[i];
list[i] = tmp;
}
}
}
for (int i = 0; i < list.Count; i++)
{
Console.WriteLine(list[i]);
}
}
#endregion
#region 选择排序
//基本思想 每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完。
public void SelectionSort()
{
for (int i = 0; i < list.Count; i++)
{
int minIndex = i;
for (int j = i + 1; j < list.Count; j++)
{
if (list[i] > list[j]) minIndex = j;
}
if(minIndex != i)
{
int tmp = list[minIndex];
list[minIndex] = list[i];
list[i] = tmp;
}
}
for (int i = 0; i < list.Count; i++)
{
Console.WriteLine(list[i]);
}
}
#endregion
#region 插入排序
public void InsertSort()
{
for (int i = 1; i < list.Count; i++)
{
for (int j = i – 1; j >= 0; j–)
{
if (list[i] < list[j] && j – 1 >= 0 && list[i]>list[j-1])
{
int tmp = list[i];
list[i] = list[j];
list[j] = tmp;
}
}
}
for (int i = 0; i < list.Count; i++)
{
Console.WriteLine(list[i]);
}
}
#endregion