面试之冒泡排序

论坛 期权论坛 期权     
每日一算法   2019-7-29 08:41   3250   0
1题目

通过代码实现冒泡算法。





2解答

总觉得排序的算法就应该写在一起,但觉得写在一起,文章会显得太长,小伙伴们可能一下子看不完,所以最后还是分开写。接下来我们先来谈下冒泡排序。

那么什么是冒泡排序呢?

冒泡排序(Bubble Sort),是一种计算机科学领域较简单的排序算法。它重复地走访要排序的元素列,依次比较两个相邻的元素,如果他们的顺序(如从大到小、首字母从A到Z)错误,就把他们交换过来。走访元素的工作会重复地进行直到没有相邻元素需要交换,也就是说该序列已经排序完成。


这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。

冒泡排序算法的原理如下:

a)比较相邻的元素。如果第一个比第二个大,就交换他们两个。

b)对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。

c)针对所有的元素重复以上的步骤,除了最后一个。

d)持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。

下面我们通过一个例子来演示一下冒泡排序的实际流程。因为要把小的冒泡冒到左边,所以我们需要从序列后面开始比较。

假设有一个无序序列 { 7, 6, 4, 5, 8 },

第一轮冒泡:
7    6    4    5    8
因为5
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:
帖子:
精华:
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP