PHP 冒泡排序 二分查找 順序查找 二維數(shù)組排序算法函數(shù)的詳解
更新時(shí)間:2013年06月25日 16:30:46 作者:
本篇文章是對(duì)PHP 冒泡排序 二分查找 順序查找 二維數(shù)組排序算法函數(shù)進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
數(shù)據(jù)結(jié)構(gòu)很重要,算法+數(shù)據(jù)結(jié)構(gòu)+文檔=程序
使用PHP描述冒泡排序算法,對(duì)象可以是一個(gè)數(shù)組
//冒泡排序(數(shù)組排序)
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; }
使用PHP描述順序查找和二分查找(也叫做折半查找)算法,順序查找必須考慮效率,對(duì)象可以是一個(gè)有序數(shù)組
//二分查找(數(shù)組里查找某個(gè)元素)
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;
}
//順序查找(數(shù)組里查找某個(gè)元素)
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;
}
}
寫(xiě)一個(gè)二維數(shù)組排序算法函數(shù),能夠具有通用性,可以調(diào)用php內(nèi)置函數(shù)
//二維數(shù)組排序, $arr是數(shù)據(jù),$keys是排序的健值,$order是排序規(guī)則,1是升序,0是降序
function array_sort($arr, $keys, $order=0) {
if (!is_array($arr)) {
return false;
}
$keysvalue = array();
foreach($arr as $key => $val) {
$keysvalue[$key] = $val[$keys];
}
if($order == 0){
asort($keysvalue);
}else {
arsort($keysvalue);
}
reset($keysvalue);
foreach($keysvalue as $key => $vals) {
$keysort[$key] = $key;
}
$new_array = array();
foreach($keysort as $key => $val) {
$new_array[$key] = $arr[$val];
}
return $new_array;
}
使用PHP描述冒泡排序算法,對(duì)象可以是一個(gè)數(shù)組
復(fù)制代碼 代碼如下:
//冒泡排序(數(shù)組排序)
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; }
使用PHP描述順序查找和二分查找(也叫做折半查找)算法,順序查找必須考慮效率,對(duì)象可以是一個(gè)有序數(shù)組
復(fù)制代碼 代碼如下:
//二分查找(數(shù)組里查找某個(gè)元素)
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;
}
//順序查找(數(shù)組里查找某個(gè)元素)
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;
}
}
寫(xiě)一個(gè)二維數(shù)組排序算法函數(shù),能夠具有通用性,可以調(diào)用php內(nèi)置函數(shù)
復(fù)制代碼 代碼如下:
//二維數(shù)組排序, $arr是數(shù)據(jù),$keys是排序的健值,$order是排序規(guī)則,1是升序,0是降序
function array_sort($arr, $keys, $order=0) {
if (!is_array($arr)) {
return false;
}
$keysvalue = array();
foreach($arr as $key => $val) {
$keysvalue[$key] = $val[$keys];
}
if($order == 0){
asort($keysvalue);
}else {
arsort($keysvalue);
}
reset($keysvalue);
foreach($keysvalue as $key => $vals) {
$keysort[$key] = $key;
}
$new_array = array();
foreach($keysort as $key => $val) {
$new_array[$key] = $arr[$val];
}
return $new_array;
}
您可能感興趣的文章:
- 使用PHP實(shí)現(xiàn)二分查找算法代碼分享
- php二分法在IP地址查詢(xún)中的應(yīng)用
- php二分查找二種實(shí)現(xiàn)示例
- 深入理解PHP幾個(gè)算法:PHP冒泡、PHP二分法、PHP求素?cái)?shù)、PHP乘法表
- PHP字符串逆序排列實(shí)現(xiàn)方法小結(jié)【strrev函數(shù),二分法,循環(huán)法,遞歸法】
- php順序查找和二分查找示例
- php 數(shù)組二分法查找函數(shù)代碼
- php數(shù)據(jù)結(jié)構(gòu)與算法(PHP描述) 查找與二分法查找
- php中二分法查找算法實(shí)例分析
- 數(shù)據(jù)結(jié)構(gòu)之利用PHP實(shí)現(xiàn)二分搜索樹(shù)
相關(guān)文章
PHP中單引號(hào)與雙引號(hào)的區(qū)別分析
在PHP中,我們可以使用單引號(hào)或者雙引號(hào)來(lái)表示字符串。不過(guò)我們作為開(kāi)發(fā)者,應(yīng)該了解其中的區(qū)別。單引號(hào)與雙引號(hào)對(duì)于定義字符一個(gè)是可以解析變量一個(gè)是會(huì)把變量直接輸出來(lái),同時(shí)單引號(hào)與雙引號(hào)在字符處理上單引號(hào)要優(yōu)與雙引號(hào)2014-08-08php利用smtp類(lèi)實(shí)現(xiàn)電子郵件發(fā)送
這篇文章主要介紹了php利用smtp類(lèi)輕松實(shí)現(xiàn)發(fā)送電子郵件,smtp類(lèi)發(fā)送郵件的方法其實(shí)很簡(jiǎn)單,需要的朋友可以參考下2015-10-10利用php獲取服務(wù)器時(shí)間的實(shí)現(xiàn)代碼
本篇文章是對(duì)使用php獲取服務(wù)器時(shí)間的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06php實(shí)現(xiàn)按天數(shù)、星期、月份查詢(xún)的搜索框
這篇文章主要介紹了php實(shí)現(xiàn)按天數(shù)、星期、月份查詢(xún)的搜索框的相關(guān)資料,需要的朋友可以參考下2016-05-05PHP判斷數(shù)據(jù)庫(kù)中的記錄是否存在的方法
這篇文章主要介紹了PHP判斷數(shù)據(jù)庫(kù)中的記錄是否存在的方法,通過(guò)mysql_num_rows對(duì)查詢(xún)結(jié)果進(jìn)行判斷來(lái)實(shí)現(xiàn)這一功能,非常實(shí)用,需要的朋友可以參考下2014-11-11