zoukankan      html  css  js  c++  java
  • 算法回顾(一):冒泡排序

    排序问题是计算机科学中比较基础的一个问题,目的就是将一组无序的数据整理成有序的状态。

    今天要回顾的就是在计算机算法课上可以说必讲的一个排序算法----冒泡排序。

     冒泡排序包括一个简单的双重循环。第一次的内部for循环从记录数组的底部比较到顶部,比较相邻的关键码。如果低序号的关键码值比高序号的关键码值大,则将二者交换顺序。一旦遇到一个最小关键码值,这个过程将使它像一个“气泡”一样被推到数组的顶部。第二次在重复调用上面的过程,但是,既然知道最小元素第一次就被排到了数组的最上面,因此就不没有必要再比较最上面的两个元素了。

    代码实现如下:

     1 void bubbleSort(int array[], int n)
     2 {
     3     for (int i=0; i<n; ++i) {
     4         for (int j=n-1; j>i; --j) {
     5             if (array[j] < array[j-1]) {
     6                 swap(array[j], array[j-1]);
     7             }
     8         }
     9     }
    10 }
    11 
    12 
    13 int main()
    14 {
    15     int a[] = {5,4,7,34,3,8,9,2,2,44,555,8};
    16     
    17     bubbleSort(a, sizeof(a)/sizeof(int));
    18     
    19     for (int i=0; i<sizeof(a)/sizeof(int); ++i) {
    20      cout<<a[i]<<endl;
    21     }
    22     
    23     return 0;
    24 
    25 }

     输出结果:

  • 相关阅读:
    半截水晶头线接激活本地虚拟网卡
    快捷键
    嵌入式系统原理与应用技术(第三版)-读书笔记
    嵌入式基本常识(一)
    PWM输出
    ARM-GPIO
    POI使用
    oracle常见命令
    JS获取contextPath的方法
    JPA自动生成表
  • 原文地址:https://www.cnblogs.com/csusheep/p/3237140.html
Copyright © 2011-2022 走看看