首頁 > php教程 > php手册 > 主體

插入排序

WBOY
發布: 2016-06-06 19:37:52
原創
812 人瀏覽過

无详细内容 无 ?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)));
登入後複製
相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門推薦
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板