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 }                                    
  • 相关阅读:
    (Vedctor经典)A
    C++ map用法
    (约瑟夫应用)5.4.1 Roman Roulette
    部分题集代码
    随机生成数
    如何在AutoCAD中实现鼠标双击事件
    浅谈JS之Error对象
    自定义微信小程序swiper轮播图面板指示点的样式
    物理像素与逻辑像素相关概念
    微信小程序中padding-right和margin-right无效
  • 原文地址:https://www.cnblogs.com/tanshengjiang/p/14221581.html
Copyright © 2011-2022 走看看