<<轻松学会C语言>>14. 冒泡排序
在算法中,有一个功能经常需要,就是排序,从小到大排序,或从大到小排序。
一.冒泡排序
1.需求:把一个字符串或数组的内容从小到大排序;
2.模拟:按照冒泡模拟:
假设数组有 3, 2,7,4,1 要从小到大排序
冒泡过程1:
3和2比较,3大,因此1.1次互换位置:2,3,7,4,1
3和7比较,7大,因此1.2次不换位置:2,3,7,4,1
7和4比较,7大,因此1.3次互换位置:2,3,4,7,1
7和1比较,7大,因此1.4次互换位置:2,3,4,1,7
第一轮冒泡,最大的7已经冒到最上面
冒泡过程2:
2和3比较:3大,因此2.1 不换位置,2,3,4,1,7
3和4比较,4大,因此2.2 不换位置,2,3,4,1,7
4和1比较,4大,因此2.3 互换位置,2,3,1,4,7
4和7比较,7大,因此2.4 不换位置
第二轮冒泡,最大4已经冒出来
冒泡过程3:
2和3比较, 3大,因此3.1 不换位置,2,3,1,4,7
3和1比较, 3大,因此3.2 互换位置 2,1,3,4,7
3和4比较,4大,因此3.3 不换位置
4和7比较,7大,因此3.4不换位置
冒泡过程4:
2和1比较,2大,因此4.1换位置,1,2,3,4,7
2和3比较,3大,...
3和4比较,4大...
4和7比较,7大
3.抽象:
把上面过程抽象,则有2个循环,都是从头到尾循环
i=0-5; 外围循环, 循环次数为最大字符数;
j=1-5; 内部循环,只要str[j]>str[j+1], 就swap;
注意:循环次数为j+1<最大字符长度;
声名:以上内容为 七里稻田 原创
如果需要C语言全课程, 可以留言/或私信。
将提供C语言全课程,可以免费体验,或支付9.9元,即可购买课程,获得课程所有程序源代码。并提供在线疑问解决3个月。
赞 (0)