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();
運行結果
