冒泡排序
演算法描述:從陣列的首端(尾端)開始,將相鄰兩數進行比較,將最大(最小)的數放置到尾端(首端)如此回圈,并在下次回圈時剔除上次尾端(首端)已放置好的數,直至排出正確序列,
下面展示一些 c#實作,
// An highlighted block
int[] b = { 15, 93, 45, 82, 16, 78, 0, 65, 32, 26 };
for (int i = 0; i < b.Length; i++)
{
for (int j = 1; j < b.Length-i; j++)
{
if (b[j - 1] > b[j])
{
int num = b[j];
b[j] = b[j - 1];
b[j - 1] = num;
}
}
}
foreach (int d in b)
{
Console.WriteLine(d);
}
插入排序
演算法描述:從第二個數開始往右回圈,每次回圈中將當前數分別與其左邊的數進行比較,如發現比當前數大的數則進行交換,如此回圈,直至正確排序
下面展示一些 c#實作,
// An highlighted block
int num = 0;
int[] b = { 15, 93, 45, 82, 16, 78, 0, 65, 32, 26 };
for(int i = 1; i < b.Length; i++)
{
int j = i - 1;
num = b[i];
while (j >= 0 && num <= b[j])
{
b[j + 1] = b[j];
j--;
}
b[j + 1] = num;
}
foreach(int i in b)
{
Console.WriteLine(i);
}
選擇排序
演算法描述:從首端開始,利用中間變數找出最小的數將此數與首端數進行交換,下次回圈找出最小數與第二個數進行交換,如此回圈,直至正確排序
下面展示一些 c#實作,
// An highlighted block
int[] b = { 15, 93, 45, 82, 16, 78, 0, 65, 32, 26 };
for(int i = 0;i < b.Length - 1; i++)
{
int num = i;//存盤最小數值的索引
for(int j = i+1;j < b.Length; j++)
{
if (b[num]>b[j])//用當前數字與后面的每個數字比較
{
num = j;//如果當前數字比后面數字大 則交換索引
}
}
int num1 = b[num];//將最小的數與第一個數字交換
b[num] = b[i];
b[i] = num1;
}
foreach(int i in b)
{
Console.WriteLine(i);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/128594.html
標籤:其他
