<<轻松学会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)

相关推荐