小小飞鹰

     中国人缺少的是步骤,太急。练太极!
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

[练手2]冒泡排序

Posted on 2008-11-20 09:41  小小飞鹰  阅读(275)  评论(0编辑  收藏  举报

目      标      用C#实现冒泡排序    

性能分析
若记录序列的初始状态为"正序",则冒泡排序过程只需进行一趟排序,在排序过程中只需进行n-1次比较,且不移动记录;反之,若记录序列的初始状态为"逆序",则需进行n(n-1)/2次比较和记录移动。因此冒泡排序总的时间复杂度为O(n*n)。  

实现
     1 冒泡排序的基本概念是:依次比较相邻的两个数,将大数放在前面,小数放在后面

     2 代码:

         public void Sort(int [] intArray)
        {
            int intTemp;
            bool blnDo = true;//如果已经没有互换动作说明已经排好
            for (int i = 1; i < intArray.Length; i++)//通过i次冒泡
            {
                if (blnDo)
                {
                    break;
                }
                blnDo = true;
                for (int j = 0; j < intArray.Length - i; j++)//排序j个元素
                {
                    if (intArray[j] > intArray[j + 1])
                    {
                        //互换
                        blnDo = false;
                        intTemp = intArray[j];
                        intArray[j] = intArray[j + 1];
                        intArray[j + 1] = intTemp;
                    }
                }
            }
        }


代码下载  冒泡排序代码