<?php
//二分查找(数组里查找某个元素)
function bin_sch($array,$low,$high,$k){
if($low<=$high){
$mid = intval(($low+$high)/2);
if($array[$mid]==$k){
return $mid;
}elseif($k<$array[$mid]){
return bin_sch($array,$low,$mid-1,$k);
}else{
return bin_sch($array,$mid+1,$high,$k);
}
}
return -1;
}
/*$array=['1','2','3','4','5','6','7','8','9','10',];
$k='ijki';
$bin_ch=bin_sch($array,0,10,$k);
var_dump($bin_ch);
*/
//顺序查找(数组里查找摸个元素)
function seq_sch($array,$n,$k){
$array[$n] = $k;
for($i=0;$i<$n;$i++){
if($array[$i]==$k){
break;
}
}
if($i<$n){
return $i;
}else{
return -1;
}
}
/*$count_array=count($array);
var_dump($count_array);
$seq_sch=seq_sch($array,$count_array,'ijki');
var_dump($seq_sch);*/
//线性表的删除(数组实现)
function delete_array_element($array,$i){
$len = count($array);
if($i==$len-1){
array_pop($array);
}else{
for($j=$i;$j<$len-1;$j++){
$array[$j] = $array[$j+1];
}
array_pop($array);
}
return $array;
}
/*
var_dump($array);
$array=delete_array_element($array,3);
var_dump($array);
*/
//冒泡排序(数组排序)
function bubble_sort($array){
$count = count($array);
if($count<=0) return false;
for($i=0;$i<$count;$i++){
for($j=$count-1;$j>$i;$j--){
if($array[$j]<$array[$j-1]){
$tmp = $array[$j];
$array[$j] = $array[$j-1];
$array[$j-1] = $tmp;
}
}
}
return $array;
}
/*$array=['a','b','g','n','m','f','k','z','w'];
$bubble_sort = bubble_sort($array);
var_dump($bubble_sort);
*/
//快速排序
function quick_sort($array){
if(count($array)<=1)return $array;
$key = $array[0];
//var_dump($key);
$left_arr = array();
$right_arr = array();
for($i=1;$i<count($array);$i++){
if($array[$i]<=$key)
$left_arr[] = $array[$i];
else
$right_arr[] = $array[$i];
}
$left_arr = quick_sort($left_arr);
$right_arr = quick_sort($right_arr);
return array_merge($left_arr,array($key),$right_arr);
}
/*$array=['5','6','7','8','9','0','1','2','3','4',];
$quick=quick_sort($array);
var_dump($quick);
*/
//简单编码函数(与php_decode函数对应)
function php_encode($str){
if($str==''&& strlen($str)>128)return false;
$s='';
for($i=0;$i<strlen($str);$i++){
$c=ord($str[$i]);//转换成对应的ascll码
if($c>106&&$c<127)$c-=75;
$word=chr($c);//ascll码对应的字符
$s.=$word;
}
return $s;
}
function php_decode($str){
if($str==''&& strlen($str)>128)return false;
$s='';
for($i=0;$i<strlen($str);$i++){
$c=ord($str[$i]);//转换成对应的ascll码
if($c>31&&$c<52)$c=$c+75;//顺序必须相反,可能二次加密
$word=chr($c);//ascll码对应的字符
$s.=$word;
echo $word;
}
return $s;
}
$a='abcdefghijklmnopqistuvwxyz';
/*for($i=0;$i<26;$i++){
echo $a[$i];
}
*/
var_dump($a);
$a_encode=php_encode($a);
var_dump($a_encode);
$a_decode=php_decode($a_encode);
var_dump($a_decode);
?>
//二分查找(数组里查找某个元素)
function bin_sch($array,$low,$high,$k){
if($low<=$high){
$mid = intval(($low+$high)/2);
if($array[$mid]==$k){
return $mid;
}elseif($k<$array[$mid]){
return bin_sch($array,$low,$mid-1,$k);
}else{
return bin_sch($array,$mid+1,$high,$k);
}
}
return -1;
}
/*$array=['1','2','3','4','5','6','7','8','9','10',];
$k='ijki';
$bin_ch=bin_sch($array,0,10,$k);
var_dump($bin_ch);
*/
//顺序查找(数组里查找摸个元素)
function seq_sch($array,$n,$k){
$array[$n] = $k;
for($i=0;$i<$n;$i++){
if($array[$i]==$k){
break;
}
}
if($i<$n){
return $i;
}else{
return -1;
}
}
/*$count_array=count($array);
var_dump($count_array);
$seq_sch=seq_sch($array,$count_array,'ijki');
var_dump($seq_sch);*/
//线性表的删除(数组实现)
function delete_array_element($array,$i){
$len = count($array);
if($i==$len-1){
array_pop($array);
}else{
for($j=$i;$j<$len-1;$j++){
$array[$j] = $array[$j+1];
}
array_pop($array);
}
return $array;
}
/*
var_dump($array);
$array=delete_array_element($array,3);
var_dump($array);
*/
//冒泡排序(数组排序)
function bubble_sort($array){
$count = count($array);
if($count<=0) return false;
for($i=0;$i<$count;$i++){
for($j=$count-1;$j>$i;$j--){
if($array[$j]<$array[$j-1]){
$tmp = $array[$j];
$array[$j] = $array[$j-1];
$array[$j-1] = $tmp;
}
}
}
return $array;
}
/*$array=['a','b','g','n','m','f','k','z','w'];
$bubble_sort = bubble_sort($array);
var_dump($bubble_sort);
*/
//快速排序
function quick_sort($array){
if(count($array)<=1)return $array;
$key = $array[0];
//var_dump($key);
$left_arr = array();
$right_arr = array();
for($i=1;$i<count($array);$i++){
if($array[$i]<=$key)
$left_arr[] = $array[$i];
else
$right_arr[] = $array[$i];
}
$left_arr = quick_sort($left_arr);
$right_arr = quick_sort($right_arr);
return array_merge($left_arr,array($key),$right_arr);
}
/*$array=['5','6','7','8','9','0','1','2','3','4',];
$quick=quick_sort($array);
var_dump($quick);
*/
//简单编码函数(与php_decode函数对应)
function php_encode($str){
if($str==''&& strlen($str)>128)return false;
$s='';
for($i=0;$i<strlen($str);$i++){
$c=ord($str[$i]);//转换成对应的ascll码
if($c>106&&$c<127)$c-=75;
$word=chr($c);//ascll码对应的字符
$s.=$word;
}
return $s;
}
function php_decode($str){
if($str==''&& strlen($str)>128)return false;
$s='';
for($i=0;$i<strlen($str);$i++){
$c=ord($str[$i]);//转换成对应的ascll码
if($c>31&&$c<52)$c=$c+75;//顺序必须相反,可能二次加密
$word=chr($c);//ascll码对应的字符
$s.=$word;
echo $word;
}
return $s;
}
$a='abcdefghijklmnopqistuvwxyz';
/*for($i=0;$i<26;$i++){
echo $a[$i];
}
*/
var_dump($a);
$a_encode=php_encode($a);
var_dump($a_encode);
$a_decode=php_decode($a_encode);
var_dump($a_decode);
?>