排序算法:冒泡排序
来源:互联网 发布:阿里云服务器安全配置 编辑:程序博客网 时间:2024/06/05 04:02
一、原理
对于长度为n的数组,我们对数组的前n,n-1,n-2,n-3,…,0个数组进行“冒泡”,即比较前一个数据与后一个数据的大小,若前者更大,交换位置。这样一来,最大的数据便可以移到数组的末位置。进行n-1次上述操作后,数组排序即完成。
二、流程
(1)遍历数组至第n-1个数据,比较相邻两数据大小,若前者更大,交换二者位置;
(2)n–。
三、实现
#include <cstdio>int main() { int n; scanf("%d", &n); int data[n + 5]; int i; for(i = 0; i < n; i++) { scanf("%d", &data[i]); } int temp, end; for(end = n - 1; end >= 0; end--) { for(i = 0; i < end; i++) { if(data[i] > data[i + 1]) { // 如果此处改成<,便可实现从大到小 temp = data[i + 1]; data[i + 1] = data[i]; data[i] = temp; } } } for(i = 0; i < n; i++) { printf("%d ", data[i]); } return 0;}
四、思考
对于n-1次遍历操作,有一些部分有序的数组事实上不需要那么多次即可得到完全有序的数组。如何判断这种情况以节省时间?
参考:冒泡排序以及冒泡排序的优化 - onlycxue
0 0
- 排序算法--冒泡排序
- 排序算法-冒泡排序
- 排序算法--冒泡排序
- 排序算法--冒泡排序
- 排序算法-冒泡排序
- 排序算法 冒泡排序
- 排序算法-- 冒泡排序
- 排序算法-冒泡排序
- 排序算法---冒泡排序
- 排序算法-冒泡排序
- 排序算法--冒泡排序
- 排序算法--冒泡排序
- 排序算法--冒泡排序
- 排序算法--冒泡排序
- 排序算法--冒泡排序
- 排序算法--冒泡排序
- 排序算法 冒泡排序
- 排序算法-冒泡排序
- 在上下文中找不到 owin.Environment 项 No owin.Environment item was found in the context
- Unity 游戏框架搭建 (十一) 简易AssetBundle打包工具(一)
- Android中view的加载机制(一)
- Activity和Window的View的移动的一些思考与体会,腾讯悬浮小火箭的实现策略
- 【C++】强制类型转换
- 排序算法:冒泡排序
- Java程序员最亲睐的Web框架
- JSON和JSONP
- adb server is out of date.killing的解决办法
- python时间戳与日期格式互转
- js定时切换文字,并能获取到文字的链接
- Android Device Administration 设备管理器——实现一键锁屏
- SQL中Left Join 与Right Join 与 Inner Join 与 Full Join的区别
- ubuntu14.04+cuda8.0+GTX1080配制方法