C++冒泡排序

冒泡排序的思路非常直接,就是将排序队列中值逐一进行比较,以从小到大排列为例,如果前面的值大于后面的值,就进行交换,就像冒泡一样,从底向上移动。在实现上,需要两重循环,外循环中循环变量所在位置的值与内循环变量的值逐一比较。下面是c++的实现。

#include <iostream>
#include "Poet.h"
using namespace std;

int main(int argc, char** argv) {
    
    //定义需要排序的诗人 
    Poet  arr[3]={Poet("李白",900),Poet("杜甫",800),Poet("白居易",1800)};
    
    int n=3;
    
    for(int i=0;i<n-1;i++){ //外循环,逐个比较 
        for(int j=i+1;j<n;j++){//内循环,比较,将最大的交换到第一位 
            if(arr[i].GetNumber()<arr[j].GetNumber()){
                Poet p=arr[i];
                arr[i]=arr[j];
                arr[j]=p;
                
            }
        }
    } 
    
    //输出排序结果 
    for(int i=0;i<3;i++){
        Poet p=arr[i];
        cout<<p.GetName()<<":"<<p.GetNumber()<<"\n";
    }
    
    return 0;
}

上面排序中用到的诗人定义如下:

#ifndef POET_H
#define POET_H

#include <string>
using namespace std;

class Poet
{
    private:
    
     string name;
     int number; 
    public:
        Poet();
        Poet(string _name,int _number);
        string GetName();
        int GetNumber();
        
    protected:
};

#endif

include "Poet.h"

Poet::Poet(string _name,int _number){
name=_name;
number=_number;
}

string Poet::GetName()
{
return name;

}

int Poet::GetNumber()
{
return number;
}


©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容