演算法資料結構
經典的氣泡排序 C#實現
將一組資料當前位置和後一位比較,如果當前大於後一位 ,則兩個數交換位置,直到排序完成
namespace BubbleSort
{
class MainClass
{
// 陣列氣泡排序,原理:大的元素總是向後慢慢移動直到遇到比它更大的元素,每一輪 交換,輸出最大值
public static void Main(string[] args)
{
//一組陣列升序
int temp = 0;//定義資料交換的中間臨時變數
int[] list = new int[10] { 40, 20, 30, 10, 9 ,1,2,5,6,4} ;
for (int i = 0; i < list.Length - 1; i++)
{
for (int j = i + 1; j < list.Length; j++)
{
if (list[i] > list[j])//如果第二個數小於第一個數
{
//互動兩個數的位置
temp = list[i];//把大的數放在一個臨時儲存位置
list[i] = list[j];//把小的數賦給前一個,保證每趟排序前面最小
list[j] = temp;//然後把臨時位置的哪個大數賦給後一個
}
}
}
//或者
for(int i = 0;i<list.Length-1;i++)
{
for (int j = 0; j < list.Length - 1;j++)
{
if(list[j]>list[j+1])
{
temp = list[j];
list[j] = list[j + 1];
list[j + 1] = temp;
}
}
}
// 降序
for (int i = 0; i < list.Length-1;i++)
{
for (int j = 0; j < list.Length-1;j++)
{
if(list[j]<list[j+1])
{
temp = list[j];
list[j] = list[j + 1];
list[j + 1] = temp;
}
}
}
Console.WriteLine("排序後的陣列!");
foreach(int item in list)
{
Console.Write(item +",");
}
Console.WriteLine();
Console.ReadLine();
}
}
}