冒泡排序是一种简单的交换排序,它的基本思想是两两向记录的关键字,如果为反序则交换位置,一直排序到没有相反位置即可,
首先我们必须弄清楚什么是冒泡排序,不理解冒泡排序的原理,我们就无法写出代码。
冒泡排序(BubbleSort)的基本概念是:依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。至此第一趟结束,将最大的数放到了最后。在第二趟:仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再小于第2个数),将小数放前,大数放后,一直比较到倒数第二个数(倒数第一的位置上已经是最大的),第二趟结束,在倒数第二的位置上得到一个新的最大数(其实在整个数列中是第二大的数)。如此下去,重复以上过程,直至最终完成排序。
$arr = array(4,6,3,5); //冒泡排序 function BubbleSort($arr) { $len=count($arr); //设置一个空数组 用来接收冒出来的泡 //该层循环控制 需要冒泡的轮数 for($i=1;$i<$len;$i++) { //该层循环用来控制每轮 冒出一个数 需要比较的次数 for($k=0;$k<$len-$i;$k++) { if($arr[$k]>$arr[$k+1]) { $tmp=$arr[$k+1]; $arr[$k+1]=$arr[$k]; $arr[$k]=$tmp; } } } return $arr; } print_r(BubbleSort($arr));
冒泡排序算法的运作如下:(从后往前)
- 比较相邻的元素。如果第一个比第二个大,就交换他们两个。
- 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
- 针对所有的元素重复以上的步骤,除了最后一个。
- 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
本文详细介绍了冒泡排序的基本概念和工作原理,通过比较相邻元素并交换位置来实现排序。冒泡排序逐步将最大(或最小)元素冒泡到数列的末尾,经过多轮迭代直到完成整个序列的排序。这是一个简单的交换排序方法,适用于小规模数据的排序。
790

被折叠的 条评论
为什么被折叠?



