AICODER大前端培训

AICODER-IT培训专家,前端培训基地,前端培训,全栈培训,大学生IT培训基地,线上IT课程免费自学,线下培训项目实战,实习,html5培训实习-AICODE程序员

在线咨询

十大排序算法

AICODER官方 发布于: 2019年6月10日 18时5分18秒 阅读1405次

冒泡排序

  冒泡排序无疑是最为出名的排序算法之一,从序列的一端开始往另一端冒泡(你可以从左往右冒泡,也可以从右往左冒泡,看心情),依次比较相邻的两个数的大小(到底是比大还是比小也看你心情)。

 

图解冒泡

  我们以[8,2,5,9,7]这组数字来做示例,上图来战:

  我们从左往右依次冒泡,将小的往右移动

  首先比较第一个数和第二个数的大小,我们发现2比8要小,那么保持原位,不做改动。位置还是8,2,5,9,7。

 

  指针往右移动一格,接着比较:

  比较第二个数和第三个数的大小,发现2比5要小,所以位置交换,交换后数组更新为:[8,5,2,9,7]。

 

  指针再往右移动一格,继续比较:

  比较第三个数和第四个数的大小,发现2比9要小,所以位置交换,交换后数组更新为:[8,5,9,2,7]

 

  同样,指针再往右移动,继续比较:

  比较第4个数和第5个数的大小,发现2比7要小,所以位置交换,交换后数组更新为:[8,5,9,7,2]

 

  下一步,指针再往右移动,发现已经到底了,则本轮冒泡结束,处于最右边的2就是已经排好序的数字。

  通过这一轮不断的对比交换,数组中最小的数字移动到了最右边。

 

  接下来继续第二轮冒泡:

  由于右边的2已经是排好序的数字,就不再参与比较,所以本轮冒泡结束,本轮冒泡最终冒到顶部的数字5也归于有序序列中,现在数组已经变化成了[8,9,7,5,2]。

 

 

  让我们开始第三轮冒泡吧!

  由于8比7大,所以位置不变,此时第三轮冒泡也已经结束,第三轮冒泡的最后结果是[9,8,7,5,2]

 

  紧接着第四轮冒泡:

  9和8比,位置不变,即确定了8进入有序序列,那么最后只剩下一个数字9,放在末尾,自此排序结束。