• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

PHP实现四种排序-插入排序

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

代码实现:

/**
*	插入排序
*	在要排序的一组数中,假设前面的数已经是排好顺序的,现在要把第n个数插到前面的有序数中,使得这n个数也是排好顺序的。如此反复循环,直到全部排好顺序。
*/
function insertSort($arr) {
    $len=count($arr); 
    //这个元素 就是从第二个元素开始,到最后一个元素都是这个需要排序的元素
    for($i=1;$i<$len; $i++) {
        $tmp = $arr[$i];
        //内层循环控制,比较并插入
        for($j=$i-1;$j>=0;$j--) {
            if($tmp < $arr[$j]) {
                //发现插入的元素要小,交换位置,将后边的元素与前面的元素互换
                $arr[$j+1] = $arr[$j];
                $arr[$j] = $tmp;
            } else {
                //如果碰到不需要移动的元素,由于是已经排序好是数组,则前面的就不需要再次比较了。
                break;
            }
        }
    }
    return $arr;
}
//测试
$arr = [5,2,1,1,3,1,4];
// $arr = [5,2,0,0];
$end = insertSort($arr);
echo "<pre>";
print_r($end);

过程分析:

第1轮
Array ( [0] => 2 [1] => 5 [2] => 1 [3] => 1 [4] => 3 [5] => 1 [6] => 4 )
第2轮
Array ( [0] => 2 [1] => 1 [2] => 5 [3] => 1 [4] => 3 [5] => 1 [6] => 4 )
Array ( [0] => 1 [1] => 2 [2] => 5 [3] => 1 [4] => 3 [5] => 1 [6] => 4 )
第3轮
Array ( [0] => 1 [1] => 2 [2] => 1 [3] => 5 [4] => 3 [5] => 1 [6] => 4 )
Array ( [0] => 1 [1] => 1 [2] => 2 [3] => 5 [4] => 3 [5] => 1 [6] => 4 )
第4轮
Array ( [0] => 1 [1] => 1 [2] => 2 [3] => 3 [4] => 5 [5] => 1 [6] => 4 )
第5轮
Array ( [0] => 1 [1] => 1 [2] => 2 [3] => 3 [4] => 1 [5] => 5 [6] => 4 )
Array ( [0] => 1 [1] => 1 [2] => 2 [3] => 1 [4] => 3 [5] => 5 [6] => 4 )
Array ( [0] => 1 [1] => 1 [2] => 1 [3] => 2 [4] => 3 [5] => 5 [6] => 4 )
第6轮
Array ( [0] => 1 [1] => 1 [2] => 1 [3] => 2 [4] => 3 [5] => 4 [6] => 5 )


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
php(tp5)生成条形码发布时间:2022-07-10
下一篇:
整理一下收集的PHP字符串截取函数发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap