c# 冒泡排序

---------------------- 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培訓、期待與您交流! ----------------------

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章