博主辛苦了,我要打赏银两给博主,犒劳犒劳站长。
【摘要】很多时候在面试过程中往往考官会出冒泡排序算法的实现,昨天一位同班同学说自己在面试前没有复习冒泡排序算法,导致面试中这题没有答出来,结果就是显得有所尴尬了,今天我想了想冒泡的实现原理,用代码实现了一下,也供我以后面试时候之需。
冒泡排序的实现原理:是对相邻的数字两两进行比较,按照从小到大或者从大到小的顺序进行交换,这样一趟过去后,最大或最小的数字被交换到了最后一位,然后再从头开始进行两两比较交换,直到倒数第二位时结束。
在深入学习更多排序算法后和在实际使用情况中,冒泡排序的使用还是极少的。它适合数据规模很小的时候,而且它的效率也比较低,但是作为入门的排序算法,还是值得学习的。
算法实现代码:
// 冒泡排序算法,从小到大排序
$arr = [8,1,3,4,9,6,5,2,7];
$tot = count($arr);
var_dump($arr);
//
for($j = 1;$j <= $tot - 1;$j++)
{
// 两两比较,将剩下未排序中最大的值放置在后面
for($i = 0;$i < $tot - $j;$i++)
{
// 若$arr[$i] > $arr[$i+1],则交换值,将较大的值放置在后面
if($arr[$i] > $arr[$i+1])
{
$tmp = $arr[$i];
$arr[$i] = $arr[$i+1];
$arr[$i+1] = $tmp;
}
}
}
var_dump($arr);
运行结果:
版权归 马富天PHP博客 所有
本文标题:《【面试题】冒泡排序法的实现》
本文链接地址:http://www.mafutian.net/190.html
转载请务必注明出处,小生将不胜感激,谢谢! 喜欢本文或觉得本文对您有帮助,请分享给您的朋友 ^_^
顶0
踩0
第 1 楼 烟台淘宝代运营 2016-08-24 17:12:19 江苏苏州
评论审核未开启 |