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 }

     输出结果:

  • 相关阅读:
    关于python3.x语法
    linux简单的安全防护
    hydra(爆破神器)
    扫描Linux服务器查找恶意软件和rootkit的一款工具
    chm 已取消到该网页的导航,打不开!
    android:activity知识点
    C# Mutex对象的使用
    惯性质量与引力质量的联系
    c# timer使用
    weiFenLuo.winFormsUI.Docking.dll学习
  • 原文地址:https://www.cnblogs.com/csusheep/p/3237140.html
Copyright © 2011-2022 走看看