Never give up - LEO

人 只有在合适的地方 才能体现出最大的价值
  博客园  :: 首页  :: 联系 :: 订阅 订阅  :: 管理

冒泡排序算法.Compositor,Arithmetic

Posted on 2007-01-19 14:11  lizhiwen  阅读(182)  评论(0编辑  收藏  举报
冒泡排序算法.Compositor,Arithmetic

最简单的排序方法是冒泡排序方法。这种方法的基本思想是,将待排序的元素看作是竖着排列的气泡,较小的元素比较轻,从而要往上浮。在冒泡排序算法中我们要对这个气泡序列处理若干遍。所谓一遍处理,就是自底向上检查一遍这个序列,并时刻注意两个相邻的元素的顺序是否正确。如果发现两个相邻元素的顺序不对,即的元素在下面,就交换它们的位置。显然,处理一遍之后,最轻的元素就浮到了最高位置;处理二遍之后,次轻的元素就浮到了次高位置。在作第二遍处理时,由于最高位置上的元素已是最轻元素,所以不必检查。一般地,第i遍处理时,不必检查第i高位置以上的元素,因为经过前面i-1遍的处理,它们已正确地排好序。这个算法可实现如下。

public void vOrder()

{

       ArrayList alist = new ArrayList();

       alist.Add(5);

       alist.Add(3);

       alist.Add(7);

       alist.Add(9);

       alist.Add(2);

       alist.Add(8);

       for(int i = 0;i < alist.Count - 1;i++)

       {

                for(int k = 0; k < alist.Count -1 - i; k++)

                {

                         if((int)alist[k] > (int)alist[k+1])

                        {

                                 int ntemp = (int)alist[k];

                                 alist[k] = (int)alist[k+1];

                                 alist[k+1] = ntemp;

                         }

                }

       }

}

该算法总共进行了n(n-1)/2次比较.

 

详细描叙参考:

http://algorithm.diy.myrice.com/algorithm/commonalg/sort/internal_sorting/chapter2.htm