Maison  >  Article  >  php教程  >  插入排序

插入排序

WBOY
WBOYoriginal
2016-06-06 19:37:52816parcourir

无详细内容 无 ?php/** * 插入排序 * @param Array $a 无序集合 * @return Array 有序集合 */function insertSort($a) {$temp;$i;$j;$size_a = count($a);# 从第二个元素开始for ($i = 1; $i $size_a; $i++) {if ($a[$i] $a[$i-1]) {$j = $i; # 保存当前元素

<?php
/**
 * 插入排序
 * @param Array $a 无序集合
 * @return Array 有序集合
 */
function insertSort($a) {
	$temp;
	$i;
	$j;
	$size_a = count($a);
	# 从第二个元素开始
	for ($i = 1; $i < $size_a; $i++) {			
		if ($a[$i] < $a[$i-1]) {			
			$j = $i; # 保存当前元素的位置
			$temp = $a[$i];	 # 当前元素的值	

			# 比较左边的元素,如果找到比自己更小的,向右移动元素,否则插入元素到当前位置
			while($j>0 && $temp<$a[$j-1]) {
			 	$a[$j] = $a[$j-1];
			 	$j--;
			}
			
			# 插入元素
			$a[$j] = $temp;
		}
	}
	return $a;
}
/**
 * 获取随机数
 * @param Integer $size 数量
 * @return Integer
 */
function randomNumber($size = 10) {
	$rand = array();
	srand(time(NULL));
	for ($i = 0; $i < $size; $i++) {
		array_push($rand, mt_rand(0,1000));		
	}
	return $rand;
}

$a = randomNumber();
echo sprintf("Unsorted list %s\n", implode(" ", $a));
echo sprintf("Sorted list %s\n", implode(" ", insertSort($a)));
Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn