C++基础:排序算法 — 冒泡排序

C++基础:排序算法(包括冒泡、插入、选择、希尔、快排、并归、堆排序、桶排序),快排也是面试中常问的基础算法题。
虽然C++模板中提供了sort轮子,可以去直接使用,但是理解基础还是很重要的。

冒泡排序:大致思路就是将相邻的两个进行比较,符合条件就进行数据交换。每循环一次,就会将一个最大值(或者最小值)排好位置。
N个数据需要进行N-1次循环,每次循环则有N-i-1次交换数据的机会。 本文采用的是正序排列数值。

/* Bubble Sort 冒泡排序。
*/
#include <iostream>
using namespace std;

void bubbleSort(int num[],int len){
    for(int i = 0;i<len-1;i++){
        for(int j=0;j<len-i-1;j++){
            if(num[j]>num[j+1]){
                swap(num[j],num[j+1]);
            }            
        }
    }
    for(int i = 0;i<len;i++){
        cout << num[i]<<" ";
    }
    cout<<endl;
}
void swap(int &a,int &b){  //数据交换常用的三种方式:1、值交换 2、引用交换 3、指针交换
    int temp;

    temp = a;
    a = b;
    b = temp;
}
int main(){
    int num[] = {11,53,23,30,63,27,54,71};
    int len = sizeof(num)/sizeof(num[0]);
    cout << "排序前:";
    for(int i = 0;i<len;i++){
        cout << num[i]<<" ";
    }
    cout << endl;

    cout << "排序后:";
    bubbleSort(num,len);

    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值