#一到一百不能被三整除的数
for($i=1;$i<=100;$i++){
if($i%3 != 0){
$arr[] = $i;
}
}
var_dump($arr);
#水仙花数
for($i=0;$i<10;$i++){
for($j=0;$j<10;$j++){
for($k=0;$k<10;$k++){
$f=pow($i,3)+pow($j,3)+pow($k,3);
$g=$i*100+$j*10+$k;
if($f==$g){
$arrs[]=$g;
}
}
}
}
var_dump($arrs);
#回文数
for($i=11;$i<=99999;$i++){
$k = intval(strrev($i));
if($i == $k){
$array[] = $i;
}
}
echo "<pre>";
var_dump($array);
echo "</pre>";
#冒泡排序
function sort($arr){
for($i=0;$i<count($arr);$i++){
for($$j=0;$j<count($arr)-1;$j++){
if($arr[$j]>$arr[$j+1]){
$tem=$arr[$j+1];
$arr[$j+1]=$arr[$j];
$arr[$j]=$tem;
}
}
}
}
#选择排序
function sel_sort($arr) {
$len=count($arr);
for($i=0; $i<$len-1; $i++) {//控制循环多少次
$p = $i;//假设最小值的位置
for($j=$i+1; $j<$len; $j++) {//控制比较的次数
if($arr[$p] > $arr[$j]) {//比较得到最小值
$p = $j;//将最小值的位置保存在$p变量中
}
}
if($p != $i) {//一轮比较结束后,若最小值位置与假设位置不同,则将最小值位置换到$i处即可
$tmp = $arr[$p];
$arr[$p] = $arr[$i];
$arr[$i] = $tmp;
}
}
return $arr;
}
#插入排序
function ins_sort($arr) {
$len=count($arr);
for($i=1; $i<$len; $i++) {//控制循环多少次
$tmp = $arr[$i];//以一个值为指针和在他之前的值相比较
for($j=$i-1;$j>=0;$j--) {//控制比较的次数
if($tmp < $arr[$j]) {//如果指针小于数组值,则在数组值后插入一行,其值为$j数组值,将指针值赋予数组值,直到比较结束最小值被调至最前方
$arr[$j+1] = $arr[$j];
$arr[$j] = $tmp;
} else {
break;//如果一轮结束,没有小于的值则跳出循环
}
}
}
return $arr;
}
#快速排序
function far_sort($arr) {
$len = count($arr);
if($len <= 1) {
return $arr;
}
$base = $arr[0];//选择指针
$little = array();//小于指针的
$big = array();//大于指针的
for($i=1; $i<$len; $i++) {
if($base < $arr[$i]) {
$big[] = $arr[$i];
} else {
$little[] = $arr[$i];
}
}
$big = far_sort($big);
$little = far_sort($little);
return array_merge($little, array($base), $big);
}
#二分法排序
function erfenfa($arr,$k,$low=0,$high=0){
if(count($arr)!=0 && $high==0){
$high=count($arr);
}
if($low<=$high){
$mid=intval(($low+$high)/2);
if($arr[$mid]==$k){
return $mid;
}elseif($k<$arr[$mid]){
return erfenfa($arr,$k,$low=0,$mid-1);
}else{
return erfenfa($arr,$k,$mid+1,$high);
}
}else{
return false;
}
}
#自己在闲暇的时候写的例子,巩固的同时也相当于做个笔记,在以后的编程中多多进步,,,,,如果在程序中有什么需要改正的,希望读者可以提下意见,小女子感激不尽!!!!