冒泡排序
一、思想
- 當前數組元素與後⾯的數字元素進⾏對⽐,如果前⼤後⼩,則進⾏交換,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");
}