龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > php编程 >

插入排序 支持升序降序

时间:2014-07-22 14:50来源: 作者: 点击:
分享到:
第一次去认真学习算法。。。。
第一次去认真学习算法。。。。
<?php
class InsertManages {
	//插入算法
	function insert($rand_arr, $sort = '') {
		//得到数组个数
		$count = count($rand_arr);
		echo '<hr>排序前<hr/><xmp>' . var_export($rand_arr, TRUE) . '</xmp>';
		if ($sort == 'asc' || 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 == 'desc') {
			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 '<hr>排序后<hr/><xmp>' . var_export(InsertManages::insert($rand_arr, 'desc'), TRUE) . '</xmp>';
?>
精彩图集

赞助商链接