信息学奥赛之c++算法(八)冒泡排序
Posted 寸金课堂
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了信息学奥赛之c++算法(八)冒泡排序相关的知识,希望对你有一定的参考价值。
虽然冒泡排序因为算法复杂度高已经被抛弃使用,但对于初学者理解数组排序的使用还是很有帮助的。所谓冒泡排序(以从低到高排序为例),就是用数组内第一个数于第二个数比较,如果第一个数大,就于第二个数交换位置,然后再用第二个数于下一个数比较,依此类推,第一次循环比较完成后就能将最大的数排在数组最后一个位置。然后进行第二次循环,找出第二大数排序倒数第二个位置,看示例代码,已经一个数组a[10] = {9,18,7,6,15,4,3,12,1,10},按从小到大排序并输出:
#include <iostream>
using namespace std;
int main(){
int a[10] = {9,18,7,6,15,4,3,12,1,10};
for(int i = 10;i>0;i--){
for(int j = 0 ; j < i ; j++){
if(a[j] > a[j+1]){
swap(a[j],a[j+1]);
}
}
}
for(int i = 0 ; i<10;i++){
cout<<a[i]<<endl;
}
}
程序中swap()为交换函数,当然你也可以用之前学的两个数交换的方法自己写一个。程序执行结果:
排序算法是程序中经常使用的一种操作,常用的排序算法还有桶排序、插入排序、快速排序等。
留的一道题,和上面程序接近,就不提供参考程序了:用户输入两行数据第一行是数组的长度n,第二行是n个整数,按从大到小的顺序输出。
我们开设有机器人编程、青少年编程、动画设计等,欢迎来电咨询!
寸金课堂——让学习成为一件有趣的事
长按二维码微信报名
前期教程链接:
以上是关于信息学奥赛之c++算法(八)冒泡排序的主要内容,如果未能解决你的问题,请参考以下文章