调试过的冒泡排序算法
class Program
{public static void BubbleSort(int[] a)
{
int bound = a.Length - 1;
while (bound > 0)
{
int t = 0; // this variable records the bound of the next loop
for (int j = 0; j < bound; j++)
{
if (a[j + 1] < a[j])
{
int temp = a[j];
a[j] = a[j + 1];
a[j + 1] = temp;
t = j;
}
}
bound = t;
}
}
public static void BubbleSortNew(int[] array)
{
int length = array.Length;
int temp;
for (int i = 0; i <= length - 2; i++)
{
for (int j = 1; j <= length - 1; j++)
{
if (array[j - 1] < array[j])
{
temp = array[j];
array[j] = array[j - 1];
array[j - 1] = temp;
}
}
}
}
static void Main(string[] args)
{
int[] array = { 1, 3, 6, 9,12,21,2,4,6 };
BubbleSortNew(array);
foreach(int i in array)
{
Console.WriteLine(i);
}
Console.Read();
}
}