2.4冒泡排序

冒泡排序的过程就像它的名字一样把较小的数比作气泡,排序的过程就是起泡不断向上冒的过程,越小的数冒的越高。冒泡排序是从最底层的元素开始,用它和它紧挨着的上一个元素进行比较,如果下面元素小于上面元素就交换它们,否则保持原样。然后转移到上一个位置重复以上过程。最后,最小的元素冒到了顶部,这时我们再从最底层元素开始比较,重复前面的冒泡过程,就可以将第二小的数放在第二个位置上,如此重复下去,直到所有元素排序。

 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}\t",scores[i]);
46          }
47          Console.ReadLine();
48       }
49    }
50 }
View Code

如图

经验:

冒泡排序速记口诀(升序):

N个数字来排队,两两相比小靠前。

外层循环N-1,内层循环N-1-i。

如果要降序排序,只要把程序中的大于号换成小于号就行了。

posted @ 2018-11-01 15:23  LJLLY  阅读(356)  评论(0编辑  收藏  举报