zoukankan      html  css  js  c++  java
  • 数据结构与算法之冒泡排序(C++)

     在c语言里面算法和数据结构是非常重要的,同样在C++中也是不可缺少的一部分,算法的思想有很大的相似之处,如果你对C语言的数据结构与算法非常熟悉的话,那么对于C++的数据结构也是非常好理解的。首先我们来讲一讲最基本的排序方式--冒泡排序法

    冒泡排序

    对于冒泡排序法,大家学过C语言的应该都不会陌生,他的中心思想也比较好理解,用C++来做的话,原理是一样。

    比如我们有n个无序的数,需要对他进行排序,那么我们就需要对这些数扫描n-1次

    当我们扫描第一次的时候,就会从左到右依次比较相邻两个数之间的大小,如果前面的数比后面的数大则进行交换,反之不交换。

    如果是n个数,扫描第一次时,那么他们的比较次数为n-1次,

    扫描第二次时,他们的比较次数是n-2次 

    依次类推,扫描第i次时,比较次数为n-i-1次

    接下来用程序更好的理解一下

    1 #include<iostream>
     2 
     3 using namespace std;
     4 
     5 void BubbleSort(int list[] , int n);
     6 
     7 int main()
     8 {
     9     int a[] = {2,4,6,8,0,1,3,5,7,9};    
    10     BubbleSort(a,10);
    11     for(int k=0; k<10; k++)
    12         cout << a[k] <<endl;
    13 
    14     return 0;
    15 }
    16 
    17 void BubbleSort(int list[] , int n)
    18 {
    19     for(int i=0; i<n-1; i++)
    20     {
    21         for(int j=0; j<n-i-1; j++)
    22         {
    23             if(list[j]>list[j+1])       
    24                 swap(list[j],list[j+1]);
    25         }
    26     
    27     }
    28 
    29 }                                    
  • 相关阅读:
    Linux第七节随笔 diff /uniq /stat
    部分命令积累
    Linux第六节随笔 输入输出重定向 、管道、通配符、wc / grep / tr / sort / cut / which /whereis /locate /find /
    单词记忆-3
    单词记忆-2
    特性
    Linux第五节随笔 /file / vim / suid /sgid sbit
    Linux第四节 组管理、用户管理、权限管理 / chmod /chown / umask / vim
    深入理解用户权限rwx
    Shell
  • 原文地址:https://www.cnblogs.com/tanshengjiang/p/14221581.html
Copyright © 2011-2022 走看看