冒泡排序比较一次就交换一次前后的顺序,最后将最大的数沉底。如果我们将每次比较的结果记录下来,而不进行交换,而是等到最后才交换顺序,就会节省很多的工作,下面是改进后的算法。
public static int[] SortNumber(int[] ary)
{
int m = 0;
for (int i = 0; i < ary.Length; i++)
{
for (int j = 1; j < ary.Length - i; j++)
{
if (ary[m] < ary[j])
{
m = j;
}
}
int k = ary.Length - i - 1;
if (m != k)
{
int t = ary[m];
ary[m] = ary[k];
ary[k] = t;
}
m = 0;
}
return ary;
}