(转)C#冒泡算法
虽然每次都凭着我对冒泡法的理解给弄出来的,但是多多少少与标准模式有点差别,在网上搜了一下关于C#版的冒泡算法,居然也没有一个象样的,自己对照算法模式认真写了一个C#版的,已经测试成功。
class Program
{
static void Main()
{
int[] R ={ 9, 2, 8, 4, 7, 6 };
BubbleSort(R);
foreach (int i in R)
{
Console.WriteLine(i);
}
Console.Read();
}
public static void BubbleSort(int[] R)
{
int i, j, temp; //9 2 8 4 7 6
//交换标志
bool exchange;
//最多做R.Length-1趟排序
for (i = 0; i < R.Length; i++)
{
//本趟排序开始前,交换标志应为假
exchange = false;
for (j = R.Length - 2; j >= i; j--)
{
//交换条件
if (R[j + 1] < R[j])
{
temp = R[j + 1];
R[j + 1] = R[j];
R[j] = temp;
//发生了交换,故将交换标志置为真
exchange = true;
}
}
//本趟排序未发生交换,提前终止算法
if (!exchange)
{
break;
}
}
}
}