Net基础篇_学习笔记_第九天_数组_冒泡排序(面试常见题目)
冒泡排序:
将一个数组中的元素按照从大到小或从小到大的顺序进行排列。
for循环的嵌套---专项课题
int[] nums={9,8,7,6,5,4,3,2,1,0}; 0 1 2 3 4 5 6 7 8 9
第一趟比较:8 7 6 5 4 3 2 1 0 9 交换了9次 i=0 j=nums.Length-1-i
第二趟比较:7 6 5 4 3 2 1 0 8 9 交换了8次 i=1 j=nums.Length-1-i
第三趟比较:6 5 4 3 2 1 0 7 8 9 交换了7次 i=2 j=nums.Length-1-i
第四趟比较:5 4 3 2 1 0 6 7 8 9 交换了6次 i=3 j=nums.Length-1-i
第五趟比较:4 3 2 1 0 5 6 7 8 9 交换了5次
第六趟比较:3 2 1 0 4 5 6 7 8 9 交换了4次
第七趟比较:2 1 0 3 4 5 6 7 8 9 交换了3次
第八趟比较:1 0 2 3 4 5 6 7 8 9 交换了2次
第九趟比较:0 1 2 3 4 5 6 7 8 9 交换了1次
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace _数组练习01 { class Program { static void Main(string[] args) { int[] nums = { 0, 1, 2, 3, 5,6,7,8,9 }; for (int i = 0; i < nums.Length-1; i++) { for (int j = 0; j < nums.Length-1-i; j++) //for(int j=0;j<nums.Length-i;j++)运算次数进行了优化处理 { if (nums[j]<nums[j + 1]) { int temp = nums[j]; nums[j] = nums[j + 1]; nums[j + 1] = temp; } } } for (int i = 0; i < nums.Length; i++) { Console.WriteLine(nums[i]); } Console.ReadKey(); } } }
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace _数组练习01 { class Program { static void Main(string[] args) { int[] nums = { 0, 1, 2, 3, 5,6,7,8,9 }; Array.Sort(nums); //针对数组进行升序排列 Array.Reverse(nums); //(假意的针对数组进行降序排列);对上面升序的数组的反转处理 //for (int i = 0; i < nums.Length-1; i++) //{ // for (int j = 0; j < nums.Length-1; j++) // { // if (nums[j]<nums[j + 1]) // { // int temp = nums[j]; // nums[j] = nums[j + 1]; // nums[j + 1] = temp; // } // } //} for (int i = 0; i < nums.Length; i++) { Console.WriteLine(nums[i]); } Console.ReadKey(); } } }