冒泡排序

冒泡排序:
    原理:
        把第一个数字和所有数字进行比较,然后遇到大的交换位置,这样第一次就把最大的放在了最后边,然后继续在比较,第二次比较的时候最后一个数字就不用比较了,因为已经确定它是最大的了,以此类推。

        1. 冒泡排序法
 *     思路分析:法如其名,就是像冒泡一样,每次从数组当中 冒一个最大的数出来。
 *     比如:2,4,1    // 第一次 冒出的泡是4
 *                2,1,4   // 第二次 冒出的泡是 2
 *                1,2,4   // 最后就变成这样
    
    时间复杂度:

        冒泡排序是一种用时间换空间的排序方法,最坏情况是把顺序的排列变成逆序,或者把逆序的数列变成顺序。

代码:

function maopao($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];       //颠倒位置,大k对大值,小k对应小值
                                                     // var_dump($arr);die;            1.
  $arr[$k] = $tmp;
 //将大的换到后边,小的在前边// var_dump($arr);die; 2.
}
}
} return $arr;
}
$arr = array(9,8,7,6,5,4,3,2,1,0);
 //两两比较,较大的数扔到数组最后边var_dump(maopao($arr)); 3.


咱们分别在1,2,3 处 分别进行分别打印

我们最后冒泡排序完成的结果是第三站图,在第一次和第二次打印中我们可以看出在当k=0时,就将数组中的k为0,1的值进行互换;同理,得到最后想要的数组。

总而言之

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值