详解冒泡排序--适用于初学者,包会
2017-04-21 22:12
197 查看
1.冒泡排序的基本思想就是:每次都比较两个相邻的元素,如果他们的顺序错误就把他们的位置调换过来;
2.例如 5 9 7 6 1 8 13 4
他们每次都是两两比较,所以每一轮要比较n-i次(升续排列每次都会确定一个剩余元素中最大的一个;反之,每次都会确定一个剩余元素中最大的一个)。总共有n个元素要比较n-1轮;(这个都理解吧,不理解的可以自己每两个比较一下试试)。
下面默认升续
第一轮:
i=1,比较8-1=7次;先比较5和9,他们的顺序没有错误,不动;
再比较9和7,发现顺序错误,把9和7的位置交换,这样前三个数字的顺序就变成了5,7,9;
接着9和6比较,发现顺序错误,把9和6的位置交换,这样前三个数字的顺序就变成了5,7,6,9;
下面依次类推。。最后的顺序就变成了5,7,6,1,8,9,4,13;确定了序列中的最大元素。
第二轮;
i=2,比较8-2=6次;和第一轮一样,依次两两比较,最后确定序列第二大的9的位置。
。。。。。
最后一轮:确定了序列的升续排列1,4,5,6,7,8,9,13;
下面来张图例(百度而来)
模板代码
纯手打,学明白的,点个赞奖励一下啦!!
不是很理解的,可以给我留言,我看到的话会回复的!
共同学习,有什么错误,希望一起交流,谢谢!
2.例如 5 9 7 6 1 8 13 4
他们每次都是两两比较,所以每一轮要比较n-i次(升续排列每次都会确定一个剩余元素中最大的一个;反之,每次都会确定一个剩余元素中最大的一个)。总共有n个元素要比较n-1轮;(这个都理解吧,不理解的可以自己每两个比较一下试试)。
下面默认升续
第一轮:
i=1,比较8-1=7次;先比较5和9,他们的顺序没有错误,不动;
再比较9和7,发现顺序错误,把9和7的位置交换,这样前三个数字的顺序就变成了5,7,9;
接着9和6比较,发现顺序错误,把9和6的位置交换,这样前三个数字的顺序就变成了5,7,6,9;
下面依次类推。。最后的顺序就变成了5,7,6,1,8,9,4,13;确定了序列中的最大元素。
第二轮;
i=2,比较8-2=6次;和第一轮一样,依次两两比较,最后确定序列第二大的9的位置。
。。。。。
最后一轮:确定了序列的升续排列1,4,5,6,7,8,9,13;
下面来张图例(百度而来)
模板代码
#include <stdio.h> #include <string.h> using namespace std; int main() { int a[1000]; int i, j, n; while(~scanf("%d", &n)) { memset(a, 0, sizeof(a)); for(i = 1; i <= n; i++) scanf("%d", a + i); for(i = 1; i <= n-1; i++)//比较n-1趟 for(j = 1; j <= n-i; j++)//每次比较相邻的两个元素,比较前n-i次 { if(a[j] < a[j+1])//小于号从大到小排序 ,大于号从小到大排序 { int t = a[j];//数组中的值为变量j a[j] = a[j + 1]; a[j + 1] = t; } } for(i = 1; i <= n; i++) printf("%d ", a[i]); } return 0; }
纯手打,学明白的,点个赞奖励一下啦!!
不是很理解的,可以给我留言,我看到的话会回复的!
共同学习,有什么错误,希望一起交流,谢谢!
相关文章推荐
- 线段树基础入门详解(适用于初学者)
- 【17】-冒泡排序详解
- java数据结构与算法之冒泡排序详解
- 最好的10本适用于初学者阅读的javaScript和jQuery书籍
- 关于IIC协议之详解,这里代码主要是用于蓝桥杯的开发板上(针对初学者)
- 经典算法详解 之 冒泡排序
- 又一顶帽子:适用于初学者的 Fedora —— Chapeau Linux 24 已发布
- PCA (主成分分析)详解 (写给初学者) 结合matlab
- 转贴:个性化的Blog Skin制作方法详解(本教程适用于.Text的Blog系统)
- cocos2D捕鱼达人源代码初学者详解1文件结构及程序入口
- cocos2D捕鱼达人源代码初学者详解3AppDelegate
- GCD详解 给初学者
- Android运行时权限使用详解(适用于Android 6.0及以上)
- OKHttp使用详解,步骤挺详细的,适合初学者使用!
- javascript中的this作用域详解——针对初学者
- [置顶] Android开发之常用框架WebView详解代码。超详细,送给初学者,完全掌握此控件
- 详解冒泡排序
- 冒泡排序代码详解
- A*算法详解(适合初学者)
- 详解冒泡排序和对其优化的Shaker 排序