码迷,mamicode.com
首页 > 编程语言 > 详细

插入排序 php版本

时间:2017-11-03 19:04:16      阅读:204      评论:0      收藏:0      [点我收藏+]

标签:++   bsp   退出   php版本   index   输出   循环   版本   for   

function InsertSort(array $container)
{
$count = count($container);
for ($i = 1; $i < $count; $i++){
$temp = $container[$i];
$j = $i - 1;
// Init
while ($container[$j] > $temp){
$container[$j+1] = $container[$j];
$container[$j] = $temp;
$j--;
print_r($container);
if ($j < 0) break;
}

}
return $container;
}
print_r(InsertSort([3, 12, 42, 1, 24, 5, 346, 7]));

打印出i=3时输出的$container

Array

(
    [0] => 3
    [1] => 12
    [2] => 1
    [3] => 42
    [4] => 24
    [5] => 5
    [6] => 346
    [7] => 7
)
Array
(
    [0] => 3
    [1] => 1
    [2] => 12
    [3] => 42
    [4] => 24
    [5] => 5
    [6] => 346
    [7] => 7
)
Array
(
    [0] => 1
    [1] => 3
    [2] => 12
    [3] => 42
    [4] => 24
    [5] => 5
    [6] => 346
    [7] => 7
)
从而看出array[3]的1,一步一步移动到array[0]。
当array[2]的42 > array[3]的1 时 进入while循环,互换位置,

Array

(
    [0] => 3
    [1] => 12
    [2] => 1
    [3] => 42
    [4] => 24
    [5] => 5
    [6] => 346
    [7] => 7
)
随即j-1=1,继续判断
当array[1]的12 > array[2]的1 进入while循环,互换位置,
Array
(
    [0] => 3
    [1] => 1
    [2] => 12
    [3] => 42
    [4] => 24
    [5] => 5
    [6] => 346
    [7] => 7
)
随即j-1=0,继续判断
当array[0]的3 > array[1]的1 进入while循环,互换位置,
Array
(
    [0] => 1
    [1] => 3
    [2] => 12
    [3] => 42
    [4] => 24
    [5] => 5
    [6] => 346
    [7] => 7
)
随即j-1=-1,break退出while。
i=4继续循环;
得到最终结果:
Array
(
    [0] => 1
    [1] => 3
    [2] => 12
    [3] => 42
    [4] => 24
    [5] => 5
    [6] => 346
    [7] => 7
)

插入排序 php版本

标签:++   bsp   退出   php版本   index   输出   循环   版本   for   

原文地址:http://www.cnblogs.com/xcvv/p/7779191.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!