冒泡排序的过程就像它的名字一样把较小的数比作气泡,排序的过程就是起泡不断向上冒的过程,越小的数冒的越高。冒泡排序是从最底层的元素开始,用它和它紧挨着的上一个元素进行比较,如果下面元素小于上面元素就交换它们,否则保持原样。然后转移到上一个位置重复以上过程。最后,最小的元素冒到了顶部,这时我们再从最底层元素开始比较,重复前面的冒泡过程,就可以将第二小的数放在第二个位置上,如此重复下去,直到所有元素排序。
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 7 namespace helloWorld 8 { 9 /// <summary> 10 /// 演示如何使用二重循环实现冒泡排序 11 /// </summary> 12 class Program 13 { 14 static void Main(string[] args) 15 { 16 int[] scores=new int[5];//成绩数组 17 int i, j;//循环变量 18 int temp;//临时变量 19 //读入成绩 20 Console.WriteLine("please input five students' scores: "); 21 for (i = 0; i < scores.Length; i++) 22 { 23 Console.WriteLine("No.{0} student's score: ",i+1); 24 scores[i] = int.Parse(Console.ReadLine());//类型转换 25 } 26 //开始排序--使用冒泡排序 27 for (i = 0; i < scores.Length - 1; i++)//控制比较多少轮 28 { 29 //将最大的元素交换到最后 30 for (j = 0; j < scores.Length - 1 - i; j++) 31 { 32 if (scores[j] > scores[j + 1]) 33 { 34 //交换元素 35 temp = scores[j]; 36 scores[j] = scores[j + 1]; 37 scores[j + 1] = temp; 38 } 39 } 40 } 41 //排序输出 42 Console.WriteLine("the sorted scores: "); 43 for (i = 0; i < scores.Length; i++) 44 { 45 Console.WriteLine("{0} ",scores[i]); 46 } 47 Console.ReadLine(); 48 } 49 } 50 }
如图
经验:
冒泡排序速记口诀(升序):
N个数字来排队,两两相比小靠前。
外层循环N-1,内层循环N-1-i。
如果要降序排序,只要把程序中的大于号换成小于号就行了。