php插入排序法

原创 木鱼  2017-09-18 12:30  阅读 1,033 次

选择一个元素, 这个元素是从数组第二个数开始到末尾, 记录元素值;

把记录值 与 记录值之前的数从后往前就行比较; 比如: [2,1,3] 记录1, 1与2比;

如果之前的数大于记录值的数, 则该数就后移一位; 数组变为: [2,2,3]

然后把记录值的数 替换到 原数的位置; 数组变为[1,2,3]

接着循环, 记录3 

3与2比, 不成立

3与1比, 不成立

循环排序完毕 返回数组

// 插入排序
function insertSort ( $arr ) 
{
	$len = count($arr);

	for ($i = 1; $i < $len; $i ++) { 
		
		// 记录一个值
		$tmp = $arr[$i];

		// 把$i之前的数, 从后往前进行比较, 如果大于$tmp, 就后移该值的位置
		for ($j = $i - 1; $j >= 0 && $arr[$j]>$tmp; $j --) { 
			$arr[$j+1] = $arr[$j];
		}
		$arr[$j+1] = $tmp;
		
	}

	return $arr;
}

$arr = [3,5,9,2,8];

var_dump(insertSort($arr));

本文地址:https://www.m5yu.com/insert-sort.html
关注我们:请关注一下我们的微信公众号:扫描二维码,公众号:木鱼博客
版权声明:本文为原创文章,版权归 木鱼 所有,欢迎分享本文,转载请保留出处!

发表评论


  1. 中国财经信息网
    中国财经信息网 【农民】 @回复

    php学习正在进行中,不过我看想系统的学啊,还是得培训啊。