排序算法-对冒泡排序的优化改进算法

冒泡排序比较一次就交换一次前后的顺序,最后将最大的数沉底。如果我们将每次比较的结果记录下来,而不进行交换,而是等到最后才交换顺序,就会节省很多的工作,下面是改进后的算法。

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;
}

posted @ 2012-05-10 21:25  宁静.致远  阅读(326)  评论(1编辑  收藏  举报