10大排序算法之【冒泡排序】

舍友的麻辣鸭脖真是增加了战斗力,,哈哈
冒泡排序可谓是面试中被问到几率最高的排序算法了(记得某篇文章这样说)。诚然,单冒泡排序这个名字就充满了魔性,很难有算法名字可以如此简洁明了又具体形象的描述出算法自身的意象。。冒泡排序可以有很多冒泡方式,每种方式又有很多种代码描述方式,具体效率差不多,下面是本人喜欢的一种方式。

include<iostream>

include<vector>

using namespace std;

class BubbleSort{

private:
    int len;
    vector<int> list;
public:
    BubbleSort(vector<int> _list, int _len);
    void swap(int, int);
    void bubble_sort();
    void out();

};

BubbleSort::BubbleSort(vector<int> _list, int _len){

for(int i=0; i<_len; i++) list.push_back(_list[i]);
this->len = _len;

}

void BubbleSort::bubble_sort(){

for(int i=0; i<len; i++)
    
    for(int j=0; j<len-i; j++){
        
        if(list[j]>list[j+1]) swap(j,j+1);
    }

}

void BubbleSort::swap(int a, int b){

int temp = list[a];
list[a]  = list[b];
list[b]  = temp;

}

void BubbleSort::out(){

for(int i=0; i<len; i++) cout<<list[i];

}

int main(){

int array[9] = {9,8,7,6,5,4,3,2,1};
vector<int> list;
for(int i=0; i<9; i++) list.push_back(array[i]);
BubbleSort mazhe(list,9);
mazhe.bubble_sort();
mazhe.out();

}

    原文作者:编码的哲哲
    原文地址: https://www.jianshu.com/p/40a71ecff491
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞