C#冒泡排序


1.定義
冒泡排序:就是將一個數組中的元素按照從大到小或者從小到大的排序進行
排列
 
2.分析
 1  int[] nums={9,8,7,6,5,4,3,2,1,0};0 1 2 3 4 5 6 7 8 9 
 2    第一趟比較:8 7 6 5 4 3 2 1 0 9 交換了9次   i=0        j=nums.Length-1-i
 3    第二趟比較:7 6 5 4 3 2 1 0 7 9 交換了8次   i=1        j=nums.Length-1-i
 4    第三趟比較:6 5 4 3 2 1 0 7 8 9 交換了7次   i=3        j=nums.Length-1-i
 5    第四趟比較:5 4 3 2 1 0 6 7 8 9 交換了6次  
 6    第五趟比較:4 3 2 1 0 5 6 7 8 9 交換了5次
 7    第六趟比較:3 2 1 0 4 5 6 7 8 9 交換了4次
 8    第七趟比較:2 1 0 3 4 5 6 7 8 9 交換了3次
 9    第八趟比較:1 0 2 3 4 5 6 7 8 9 交換了2次
10   第九趟比較:0 1 2 3 4 5 6 7 8 9 交換了1次
 
3.實例
1.對數組進行一個從小到大排序(面試寫法)
 1             int[] nums = { 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 };
 2             //交換時的中間量
 3             int temp;
 4             //比較的趟數
 5             for (int i = 0; i < nums.Length-1; i++)
 6             {
 7                 //交換的次數
 8                 for (int j = 0; j < nums.Length-1-i; j++)
 9                 {
10                     if (nums[j] > nums[j + 1])
11                     {
12                         temp = nums[j];
13                         nums[j] = nums[j + 1];
14                         nums[j + 1] = temp;
15                     }
16                 }
17             }
18             //輸出冒泡排序后的數組
19             for (int i = 0; i < nums.Length; i++)
20             {
21                 Console.Write(nums[i]+" ");
22             }
23             Console.ReadKey(); 

運行結果

2.對數組進行從大到小排序(面試寫法)
   int[] nums = { 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 };
            //交換時的中間量
            int temp;
            //比較的趟數
            for (int i = 0; i < nums.Length-1; i++)
            {
                //交換的次數
                for (int j = 0; j < nums.Length-1-i; j++)
                {
                    if (nums[j] < nums[j + 1])
                    {
                        temp = nums[j];
                        nums[j] = nums[j + 1];
                        nums[j + 1] = temp;
                    }
                }
            }
            //輸出冒泡排序后的數組
            for (int i = 0; i < nums.Length; i++)
            {
                Console.Write(nums[i]+" ");
            }
            Console.ReadKey();
        }

運行結果

3.只能針對數組做一個升序的排序(簡單寫法)
 1    int[] nums = { 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 };
 2             //只能針對數組做一個升序的排序(簡單寫法)
 3             Array.Sort(nums);
 4             //打印數組
 5             for (int i = 0; i < nums.Length; i++)
 6             {
 7                 Console.Write(nums[i]+" ");
 8 
 9             }
10             Console.ReadKey();
運行結果
4.對數組進行反轉(簡單寫法)
 1     int[] nums = { 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 };
 2             //對數組進行反轉(簡單寫法)
 3             Array.Reverse(nums);
 4             //打印數組
 5             for (int i = 0; i < nums.Length; i++)
 6             {
 7                 Console.Write(nums[i]+" ");
 8 
 9             }
10             Console.ReadKey();
運行結果



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM