c# 冒泡排序

来源:互联网 发布:linux 目录使用情况 编辑:程序博客网 时间:2024/06/11 01:05

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

排序规则:从大到小排序,进行两两比较
原始数据7个元素

原始数据7个元素:
10,20,30,40,50,60,70
 
先10与20比较10>20不成立 交换
20,10,30,40,50,60,70
然后第二个元素20与第三个元素30比较,不成立交换位置
……
……
20,30,40,50,60,70,10第1趟 比较了6次
30,40,50,60,70,20,10第2趟 比较了5次
40,50,60,70,30,20,10第3趟 比较了4次
50,60,70,40,30,20,10第4趟 比较了3次
60,70,50,40,30,20,10第5趟 比较了2次
70,60,50,40,30,20,10第6趟 比较了1次

也就是n个数需要排n-1趟
第t趟比较的次数为:n-t次

7个元素,排7-1=6趟,第1趟比较7-1=6次,第2趟比较7-2=5次……第6趟比较7-6=1次


i=0  第一趟
i=1  第二趟

-->趟数:i+1   t=i+1
For(int j = 0;j<n-(i+1);j++)//控制当第i+1趟是比较的次数



  static void Main(string[] args)
        {
            int[] scores = { 18, 20, 48, 76, 20, 38, 87, 90, 37, 45, 65, 65, 34, 67, 95 };
            for (int i = 0; i < scores.Length - 1; i++)//控制比较的趟数
            {
                for (int j = 0; j < scores.Length - (i + 1); j++)//控制第i+1趟比较的次数
                {
                    if (scores[j] < scores[j + 1])
                    {
                        int temp = scores[j];
                        scores[j] = scores[j + 1];
                        scores[j + 1] = temp;
                    }


                }
            }

            for (int i = 0; i < scores.Length; i++)
            {
                Console.Write(scores[i] + ",");
            }

            Console.WriteLine();
            Console.WriteLine("数组长度为:"+scores.Length);
            Console.ReadKey();


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

原创粉丝点击