zoukankan      html  css  js  c++  java
  • 3.4.4 冒泡排序的例子

      现在我们就要使用所学的知识来做一个简单的冒泡排序算法。
      小任务:对一个任意长度的整数数组进行排序,从小到大输出。排序算法使用冒泡排序,所谓冒泡排序就算遍历数组,如果顺序不对则交换相邻的两个元素进行排序。要求输出排序数组和排序后的数组。

    int[] list = 1067592843 };
    Console.Write(
    "排序前: ");
    //遍历数组输出所有元素
    for (int i = 0; i < list.Length; i++)
        Console.Write(list[i]);
    Console.WriteLine();
    int tmp = 0;    //用于交换变量
    bool isOK = false;  //表示是否还需要排序
    while (!isOK)
    {
        isOK 
    = true;
        
    for (int i = 0; i < list.Length - 1; i++)
        
    {
            
    //如果下一个元素大于这个元素
            if (list[i] > list[i + 1])
            
    {
                
    //交换两者
                tmp = list[i];
                list[i] 
    = list[i + 1];
                list[i 
    + 1= tmp;
                
    //进行了一次交换表明还需要再次排序
                isOK = false;
            }

        }

    }

    Console.Write(
    "排序后: ");
    for (int i = 0; i < list.Length; i++)
        Console.Write(list[i]);
    Console.WriteLine();



      还可以改进一下程序,使之支持从键盘输入一串数字然后输出排序结果。

    Console.Write("请输入要排序的数: ");
    string s = Console.ReadLine();
    char [] list = s.ToCharArray();
    Console.WriteLine();
    Console.Write(
    "排序前: ");
    //遍历数组输出所有元素
    for (int i = 0; i < list.Length; i++)
        Console.Write(list[i]);
    Console.WriteLine();
    char tmp = '0';    //用于交换变量
    bool isOK = false;  //表示是否还需要排序
    while (!isOK)
    {
        isOK 
    = true;
        
    for (int i = 0; i < list.Length - 1; i++)
        
    {
            
    //如果下一个元素大于这个元素
            if (list[i] > list[i + 1])
            
    {
                
    //交换两者
                tmp = list[i];
                list[i] 
    = list[i + 1];
                list[i 
    + 1= tmp;
                
    //进行了一次交换表明还需要再次排序
                isOK = false;
            }

        }

    }

    Console.Write(
    "排序后: ");
    for (int i = 0; i < list.Length; i++)
        Console.Write(list[i]);
    Console.WriteLine();

      C#几种常见流程控制语句的使用介绍完毕。在日常的应用中处处可以见到它们的身影,其实要用好这些流程控制语句还需要有一定的逻辑思维能力。
  • 相关阅读:
    Scala 学习笔记之implicit
    sbt 学习笔记(1)sbt安装和交互式界面使用
    eclipse常用快捷键
    VMWare12安装CentOS7以及redis安装和常用命令
    JAVA 遍历文件夹下的所有文件(递归调用和非递归调用)
    java 遍历List 和 Map的几种方法
    java中常用的空判断
    Layer 3.0
    AdminLTE 2.4
    Bootstrap 3.3
  • 原文地址:https://www.cnblogs.com/0754ydj/p/1247943.html
Copyright © 2011-2022 走看看