冒泡排序
一、思想
- 当前数组元素与后⾯的数字元素进⾏对⽐,如果前⼤后⼩,则进⾏交换,array[0]与array[1]对比,array[1]与array[2]对比,array[n]与array[n+1]对比
- 每轮可以确定⼀个最⼤值在数组的末位,⼏轮之后即可完成排序
- 冒泡排序当然也可以从⼤到⼩排序,那样则前⼩后⼤进⾏交互
二、代码
for (int i = 0; i < array.Length; i++)
{
//⽴个flag,表示判断过程中是否发⽣了交换
bool hasExchange = false;
for (int j = 0; j < array.Length - i - 1; j++)
{
if (array[j] > array[j + 1])
{
//说明交换了
hasExchange = true;
//交换
int temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
}
}
if(!hasExchange)
{
//说明已经排好序了,后⾯的轮次就没有必要了
break;
}
for (int m = 0; m < array.Length; m++)
{
Console.Write(array[m] + "\t");
}
Console.WriteLine();
}
Console.WriteLine("排序结束");
for (int m = 0; m < array.Length; m++)
{
Console.Write(array[m] + "\t");
}