zoukankan      html  css  js  c++  java
  • 冒泡排序算法 C#版

     冒泡排序算法的运作如下:

     1.比较相邻的元素。如果第一个比第二个大,就交换他们两个。

     2.对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。

     3.针对所有的元素重复以上的步骤,除了最后一个。

     4.持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

    代码实现如下:

     class Program
        {
            static void Main(string[] args)
            {
                int[] array = { 95, 45, 15, 78, 84, 51, 24, 12 };
                //int[] array = { 12, 15, 24, 45, 51, 78, 84, 95};//已排好序的数组 来检测使用了exchanged标识的冒泡排序 效率更高(比较的次数减少)
                Console.WriteLine("*************未排序数据****************");
                Print(array);
    
                BubbleSort(array);//冒泡排序
    
                Console.WriteLine("*************已排序数据****************");
                Print(array);
    
                Console.ReadKey();
            }
    /// <summary> /// 冒泡排序算法 /// </summary> /// <param name="array"></param> public static void BubbleSort(int[] array) {
     if (array == null || array.Length == 0) return;
    bool exchanged;//交换标识 for (int i = 0; i < array.Length; i++) { exchanged = false; //初始未交换 for (int j = 0; j < array.Length - 1 - i; j++) { if(array[j]>array[j+1]) { int temp = array[j]; array[j] = array[j + 1]; array[j + 1] = temp; exchanged = true;//交换 } } if (!exchanged)//整趟未交换则表明已经排好序,直接退出 { return; } } } /// <summary> /// 在控制台中打印数组 /// </summary> /// <param name="array"></param> public static void Print(int[] array) { for (int i = 0; i < array.Length; i++) { if (i != array.Length - 1) { Console.Write(array[i].ToString() + ","); } else { Console.WriteLine(array[i].ToString()); } } } }
  • 相关阅读:
    剑指 Offer——13. 调整数组顺序使奇数位于偶数前面
    剑指 Offer——3. 从尾到头打印链表
    剑指 Offer——2. 替换空格
    剑指 Offer——1. 二维数组中的查找
    LeetCode 905. Sort Array By Parity 按奇偶校验排列数组
    LeetCode 448. Find All Numbers Disappeared in an Array找到所有数组中消失的元素
    SSH 代码笔记
    anaconda3安装caffe
    opencv多版本安装
    人脸文章与数据库
  • 原文地址:https://www.cnblogs.com/marshhu/p/6931998.html
Copyright © 2011-2022 走看看