排序算法之冒泡排序

冒泡排序介绍
冒泡排序,顾名思义就是整个过程就像气泡一样上升,单向冒泡排序的基本思想是(假设有小到大排序):对于给定的n个记录,从第一个记录开始依次对相邻的两个记录进行比较,当前面的记录大于后面的记录时,交换器位置,进行一轮比较和换位后,n个记录中的最大记录将位于第n位;然后对前(n-1)个记录进行第二轮比较;重复该过程直到进行比较的记录只剩下一个时为止。

算法原理如下:

  1. 比较相邻的元素,如果第一个比第二个大,那么就交换这两个元素。
  2. 对每一对相邻元素做同样的工作,从第一对开始到最后一对结束,最后的元素应该会是最大的数。
  3. 除了最后一个元素外,针对其他的元素重复以上的步骤。
  4. 对越来越少的元素重复上面的步骤,知道没有任何一对数字需要比较为止。
    根据以上实现原理,实现代码如下:

方法一

<?php
header('content-type:text/html;charset=utf8');
$arr = range(34, 43);
shuffle($arr);

function bubble($arr){
	$len = count($arr);
	for ($i=1; $i < $len ; $i++) { 
		for ($j=0; $j < $len-$i; $j++) { 
			if($arr[$j]>$arr[$j+1]){
				$tmp = $arr[$j+1];
				$arr[$j+1] = $arr[$j];
				
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值