c++冒泡排序代码_C/C++基础之冒泡排序

排序算法作为编程语言中最基础的算法,在很多高级语言中系统都封装了sort方法,并提供自定义比较方法排序。但是,这背后是怎么实现的你真的知道吗?接下来几篇就给大家讲一讲C/C++里面最基础的集中数组排序方法实现吧。

冒泡排序

冒泡排序:顾名思义就是向气泡冒出来一样,谁大谁出来,在数组排序里就是谁大谁往后走。就像当初老师给我们排队的时候一样,按身高将一个最高个从前挨个比一直往后排

假设现在有一个数组{50,26,74,60,12,1,100}冒泡排序算法是怎么做的呢?

a93059e9502f32b5a9cfc05ea81a1114.png

前一个跟后一个去比较大小,如果前一个比后一个大,则前面的跟后面的交换位置,再继续往后比,知道数组结束。我们看代码实现:

526b06432a438d2b2c74cf0cf0fbc0a9.png

我们看运行结果:

1c71bdfa7b771669084f8442a97b0a6e.png

排序成功。这里需要注意的一点就是第二个循环位置的循环条件for (int j = 0; j < sizeof(arr)/sizeof(int)-1-i; j++)这里一定要注意每比较完一趟后,后面的数已经是最大的了,已经排好了,再进行下一趟的时候我们就不需要再去跟它们比较了。并且由于比较里面已经取了j+1这个下标一定记得在循环条件里减1,不然就会越界

附上原代码:

#include

#include

using namespace std;

int main()

{

int arr[7] = {50,26,74,60,12,1,100};

//这个循环式控制比较趟数,每趟都需要找出来一个最大的(除了已经排好的)

for (int i = 0; i < sizeof(arr)/sizeof(int)-1; i++)

{

//这个循环就是我在图示中表示的过程,最大的从前往后滚

for (int j = 0; j < sizeof(arr)/sizeof(int)-1-i; j++)

{

if(arr[j]>arr[j+1])

{

int temp = arr[j];

arr[j] = arr[j+1];

arr[j+1] = temp ;

}

}

}

//我们来输出一下看看排序成功没

for (int i = 0; i < sizeof(arr)/sizeof(int); i++)

{

cout<

}

system("pause");

return 0 ;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值