存档

2018年6月 的存档

二分查找

2018年6月29日 评论已被关闭

二分查找也叫折半查找

[pcsh lang=”php” tab_size=”4″ message=”” hl_lines=”” provider=”manual”]

$a = [0,1,2,3,4,5,6];

function half($arr, $value){
	$low = 0;
	$high = count($arr)-1; //9

	if($value>$arr[$high] || $value<$arr[$low])
		return false;

	while($low <= $high){
		$mid = floor(($low+$high)/2);	//4
		if($value > $arr[$mid]){
			$low = $mid + 1;
		}
		elseif($value < $arr[$mid]){
			$high = $mid - 1;
		}
		else{
			return $mid;
		}

	}

	return -1;

	}

	$x = half($a, 2);
	var_dump($x);

[/pcsh]

分类: PHP 标签:

三大排序算法

2018年6月28日 评论已被关闭

冒泡排序

[pcsh lang=”php” tab_size=”4″ message=”” hl_lines=”” provider=”manual”]

function p(&$arr){
	$len = count($arr);
	for($i=0; $i<$len-1; $i++){
		for($j=0;$j<$len-1-$i;$j++){
			if($arr[$j]>$arr[$j+1]){
				$t = $arr[$j];
				$arr[$j] = $arr[$j+1];
				$arr[$j+1] = $t;
			}
		}
	}

}


$a = [8,1,6,3,5,0];

p($a);
print_r($a);

[/pcsh]

 

选择排序

[pcsh lang=”php” tab_size=”4″ message=”” hl_lines=”” provider=”manual”]

function s(&$arr){
	$len = count($arr);
	for($i=0; $i<$len-1; $i++){
		$min = $i;

		for($j=$i+1; $j<$len; $j++){
			if($arr[$min] > $arr[$j])
				$min = $j;
		}

		if($min != $i){
			$t = $arr[$min];
			$arr[$min] = $arr[$i];
			$arr[$i] = $t;
		}

	}

}

$a = [1,9,2,8,3,6,5,0];
s($a);
print_r($a);

[/pcsh]

 

插入排序

[pcsh lang=”php” tab_size=”4″ message=”” hl_lines=”” provider=”manual”]

function i(&$arr){
	$len = count($arr);
	for($i=1; $i<$len; $i++){
		$t = $arr[$i];

		for($j=$i-1; $j>=0 && $arr[$j] > $t; $j--){
			$arr[$j+1] = $arr[$j];
		}

		$arr[$j+1] = $t;

	}

}


$a = [1,9,2,8,3,7,4,6,0];
i($a);
print_r($a);

[/pcsh]

 

快速排序(递归)

[pcsh lang=”php” tab_size=”4″ message=”” hl_lines=”” provider=”manual”]

function quick($arr){
	if(count($arr) <= 1)
		return $arr;

	$mid = $arr[0];
	$left = [];
	$right = [];

	foreach($arr as $v){
		if($v > $mid)
			$right[] = $v;
		if($v < $mid)
			$left[] = $v;
	}

	return array_merge(quick($left), [$mid], quick($right));
}


$a = quick($a);
echo implode('-', $a), PHP_EOL;

[/pcsh]

//

分类: PHP 标签: