冒泡排序

来源:互联网 发布:城市规划与设计 知乎 编辑:程序博客网 时间:2024/05/22 04:27

------- Windows Phone 7手机开发、.Net培训、期待与您交流! -------一

          交换排序的基本思想是:两两比较待排序记录的关键字,发现两个记录的次序相反是即金星交换直到没有反序的记录为止。

          应用交换排序基本思想的主要排序方法有:冒泡排序和快速排序。

冒泡排序

1.排序方法 ;让数组中的元素两两比较(第i个与第i+1个比较)经过n(i-1)遍两两比较,数组中的元素能按照我们预期的规律排序。

      要从大到小排序,我们进行两两比较的时候用“<”号,成立则交换,不成立则不交换。

例;1、2、3、4、5、6、7、原始数据  7个元素

       2、3、4、5、6、7、1、 第一趟比较了6次

       3、4、5、6、7、2、1、 第二趟比较了5次

       4、5、6、7、3、2、1、 第三趟比较了4次

       5、6、7、4、3、2、1、 第四趟比较了3次

       6、7、5、4、3、2、1、 第五趟比较了2次

      7、6、5、4、3、2、1、 第六趟比较了1次

也就是说n个数需要排n-1趟

第i趟的比较次数为n-i次

例:

            int[] score = {95,18,20,48,76,20,38,87,90,37,65,6,31,31};
            for (int i = 0; i < score.Length-1; i++)//控制比较的趟数。当i=0时,是比较的第一趟,以此类推 趟数=i+1;
            {
                for (int j = 0; j < score.Length-1; j++)
                {
                    if (score[j]<score[j+1])//改变“<”为“>”号 则改变排列的顺序
                    {
                        int temp = score[j];
                        score[j] = score[j + 1];
                        score[j + 1] = temp;

                    }
                   
                }
            }
            for (int i = 0; i < score.Length; i++)
            {
                Console.WriteLine(score[i]);
            }
            Console.ReadKey();
            //从大到小排序

 

 

原创粉丝点击