>php教程 >PHP源码 >插入排序 支持升序降序

插入排序 支持升序降序

PHP中文网
PHP中文网원래의
2016-05-25 17:09:191377검색

php代码

<?php
class InsertManages {
	//插入算法
	function insert($rand_arr, $sort = &#39;&#39;) {
		//得到数组个数
		$count = count($rand_arr);
		echo &#39;排序前&#39; . var_export($rand_arr, TRUE) . &#39;&#39;;
		if ($sort == &#39;asc&#39; || empty($sort)) {
			for ($i = 1; $i < $count; $i++) {
				if ($rand_arr[$i] < $rand_arr[$i - 1]) {
					$t = $rand_arr[$i];
					for ($j = $i; $j > 0 && $rand_arr[$j - 1] > $t; $j--) {
						$rand_arr[$j] = $rand_arr[$j - 1];
						$rand_arr[$j - 1] = $t;
					}
				}
			}
			return $rand_arr;
		} else if ($sort == &#39;desc&#39;) {
			for ($i = $count - 2; $i >= 0; $i--) {
				if ($rand_arr[$i] < $rand_arr[$i + 1]) {
					$t = $rand_arr[$i];
					for ($j = $i + 1; $j < $count && $rand_arr[$j] > $t; $j++) {
						$rand_arr[$j - 1] = $rand_arr[$j];
						$rand_arr[$j] = $t;
					}
				}
			}
			return $rand_arr;
		}
	}

	//创建随机数组
	function rands() {
		$s = 100;
		$arr = array();
		for ($i = 0; $i < $s; $i++) {
			$arr[] = rand(0, 1000);
		}
		return $arr;
	}

}

$rand_arr = InsertManages::rands();
echo &#39;排序后&#39; . var_export(InsertManages::insert($rand_arr, &#39;desc&#39;), TRUE) . &#39;&#39;;
?>

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.