介绍冒泡排序是一种比较简单且常用的算法,也是面试中被问得最多的问题。我觉得自己能力不够,无法深入了解,所以下面记录一些资料的内容,文末有原文链接。冒泡排序冒泡排序(英文:BubbleSort)是一种简单的排序算法。它迭代遍历要排序的数组,一次比较两个元素,如果顺序错误则交换它们。重复访问序列的工作,直到不需要交换,即序列已经排序。这个算法的名字来源于这样一个事实,即较小的元素会通过交换慢慢“浮”到序列的顶部。冒泡排序需要对n个项目进行O(n2)次比较,并且可以就地排序。尽管该算法是最容易理解和实现的排序算法之一,但对于包含大量元素的数组进行排序时效率非常低。冒泡排序算法的工作原理如下:比较相邻元素。如果第一个大于第二个,则交换它们。对每对相邻元素执行相同的操作,从开头的第一对到结尾的最后一对。完成这一步后,最后一个元素就是最大的数。对除最后一个元素之外的所有元素重复上述步骤。每次对越来越少的元素继续重复上述步骤,直到没有要比较的数字对。以上是维基百科中的介绍。可以看到,原理并不复杂。但是当数据量很大时,这不是一个好的选择。需要注意的是,下图和例子中的代码顺序是颠倒的。示例$arr[$k]){//前者大于后者,交换位置//如果要从大到小排序,改为$arr[$i]<$arr[$k]$temp=$arr[$i];$arr[$i]=$arr[$k];$arr[$k]=$温度;}}}返回$arr;}print_r(bubbleSort($arr));//数组([0]=>2[1]=>3[2]=>8[3]=>16[4]=>21[5]=>23[6]=>24[7]=>32[8]=>33)参考资料:冒泡排序,PHP冒泡排序算法详解,GIF演示排序算法。
