画江湖之算法篇 [排序算法] 插入排序
算法篇#
1 插入排序简介#
概括:
- 插入排序(Insertion-Sort)的算法描述是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。
小伙伴们仔细看下面的动态图哦~
完整代码块:
public static function insert($arr){
$size = count($arr);
for ($i=0; $i <$size-1 ; $i++) {
for ($j=$i+1; $j >0 ; $j--) {
if($arr[$j]<$arr[$j-1]){
$tmp=$arr[$j];
$arr[$j]=$arr[$j-1];
$arr[$j-1]=$tmp;
}
}
}
return $arr;
}
2 分析代码块 具体分析到代码注释哦 ~#
插入排序
public static function insert($arr){
$size = count($arr);//先计算出数组的大小
for ($i=0; $i <$size-1 ; $i++) {//外部循环 有多少数组 就循环多少次
for ($j=$i+1; $j >0 ; $j--) {//内部循环 递减 记住为什么要递减
if($arr[$j]<$arr[$j-1]){//如果当前的值 小于上一个值 为什么要比较上一个值 为了在已排序序列中从后向前扫描
$tmp=$arr[$j];//定义当前值的临时变量
$arr[$j]=$arr[$j-1];//替换当前值为上一个值
$arr[$j-1]=$tmp;//上一个值替换为当前的值的临时变量
}
}
}
return $arr;//返回排序好的值
}
// print_r(Sort::insert($arr));
3 时间复杂度 分析#
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: