冒泡排序

来源:互联网 发布:公网ip有什么好处 知乎 编辑:程序博客网 时间:2024/05/16 09:22

今天学习了冒泡排序,我开始还纳闷怎么书上没有冒泡排序!结果是我的看书不认真,给漏掉了,这次补上。呵呵。

冒泡排序的主要思路:

我们把要排序的数组A = {3,4,2,1} 看成一组水泡, <!--[endif]-->就像冒泡一样,轻的在上面,重的在下面,换成数据,就是小的在上面,大的在下面。 我们先把最轻的冒出到顶端,然后冒出第二轻的在最轻的下面,接着冒出第三轻的。依次内推。直到所有都冒出来了为止。
3.我们怎么做到把最轻的放在顶端呢?我们从最底下的数据开始冒,如果比他上面的数据小,就交换(冒上去),然后再用第二第下的数据比较(此时他已经是较轻的一个),如果他比他上面的小,则交换,把小的冒上去。直到比到第一位置,得到的就是最轻的数据咯,这个过程就像是冒泡一样,下面的和上面的比较,小的冒上去。大的沉下来。呵呵。

画个图先:

最初

第一次结果

第二次结果

第三次结果

3

3

3

1

4

4

1

3

2

1

4

4

1

2

2

2

开始:1 和2 比,1比2小,浮上,然后1跟4比,再1跟3比,这样结构就变为1,3,4,2。最小的位置确定了,然后我们确定第二小的,同理2 vs 4, 2 vs 3 得到2, 再确定第3小数据,3 vs 4得到3,最后就是4为最大的数据,我们冒泡就排好了。

注:这里红色的1,2是前一次比较1 vs 2交换的结构。后面也一样。

大概思路就这样了,奉上源代码:

 我这里用了一个哨兵做标记,就是如果在已经是排好序的情况下我们能检测出来并退出。随便说一下,冒泡排序是稳定的排序。

原创粉丝点击