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

    如图

    经验:

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

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

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

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

  • 相关阅读:
    (水题)洛谷
    (水题)洛谷
    洛谷
    (水题)洛谷
    POJ
    poj 3061(二分 or 尺取法)
    poj 2456(二分)
    poj 1064(二分答案)
    POJ 2559(单调栈)
    STL
  • 原文地址:https://www.cnblogs.com/LJLLY/p/9889480.html
Copyright © 2020-2023  润新知