// 冒泡算法 在要排序的一组数中,对当前还未排好的序列,从前往后对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒。即,每当两相邻的数比较后发现它们的排序与排序要求相反时,就将它们互换。
$arr = [99,223,8,34,55,0];
$count = count($arr);
for ($i=0; $i < $count; $i++) {
for ($j=0; $j < $count - $i - 1; $j++) {
if ($arr[$j] > $arr[$j + 1]) {
$tmp = $arr[$j];
$arr[$j] = $arr[$j + 1];
$arr[$j + 1] = $tmp;
}
}
}
var_dump($arr);
echo '<hr>';
// 选择排序 在要排序的一组数中,选出最小的一个数与第一个位置的数交换。然后在剩下的数当中再找最小的与第二个位置的数交换,如此循环到倒数第二个数和最后一个数比较为止。
$arr = [99,223,8,34,55,0];
$count = count($arr);
for ($i=0; $i < $count; $i++) {
$index = $i;
for ($j=$i + 1; $j < $count ; $j++) {
if ($arr[$index] > $arr[$j]) {
$index = $j;
}
}
if ($index != $i) {
$tmp = $arr[$index];
$arr[$index] = $arr[$i];
$arr[$i] = $tmp;
}
}
var_dump($arr);
echo '<hr>';
// 插入排序法 在要排序的一组数中,假设前面的数已经是排好顺序的,现在要把第n个数插到前面的有序数中,使得这n个数也是排好顺序的。如此反复循环,直到全部排好顺序。
$arr = [99,223,8,34,55,0];
$insert = 4;
$count = count($arr);
for ($i=0; $i < $count; $i++) {
$tmp = $arr[$i];
for ($j=$i - 1; $j >= 0; $j--) {
if ($tmp < $arr[$j]) {
$arr[$j+1] = $arr[$j];
$arr[$j] = $tmp;
} else {
break;
}
}
}
var_dump($arr);
echo '<hr>';
// 快速排序 选择一个基准元素,通常选择第一个元素或者最后一个元素。通过一趟扫描,将待排序列分成两部分,一部分比基准元素小,一部分大于等于基准元素。此时基准元素在其排好序后的正确位置,然后再用同样的方法递归地排序划分的两部分。
$arr = [99,223,8,34,55,0];
function myqsort($arr) {
$count = count($arr);
if ($count <= 1) {
return $arr;
}
$left = $right = [];
$base = $arr[0];
for ($i=1; $i < $count; $i++) {
if ($base > $arr[$i]) {
$left[] = $arr[$i];
} else {
$right[] = $arr[$i];
}
}
$left = myqsort($left);
$right = myqsort($right);
return array_merge($left, array($base), $right);
}
var_dump(myqsort($arr));
echo '<hr>';
// 二分查找
function search(&$arr, $val, $left = 0, $right) {
$mid = round(($left + $right) / 2);
if ($val > $arr[$mid]) {
return search($arr, $val, $mid + 1, $right);
} else if ($val < $arr[$mid]) {
return search($arr, $val, $left, $mid -1);
} else {
return $mid;
}
}
$arr = [1,3,45,67,111];
$mid = search($arr, 111, 0, count($arr) -1);
var_dump($mid);乘法表
for($i=1;$i<=9;$i++)
{
for($j=1;$j<=$i;$j++)
{
echo "$j*$i=".$i*$j." ";
}
echo '<br />';
}
fffffasdfasdfasdfasdfas;kdfjlaskl;dfjaskl;dfjakls;dfjkal;sfdjlaks;df als;dfj awkls;dfj asl;dfj aslk;dfjaskl;dfjas;ldf
访客评论