//php氣泡排序法
function
bubblesort
(&$arr)
}if(!$flag)
$flag=false;
}}
//php選擇排序法 效率比冒泡要高
function
selectsort
(&$arr)
}//最後交換
$temp=$arr[$i];
$arr[$i]=$arr[$minindex];
$arr[$minindex]=$temp;
}}
//插入排序法(小到大排序) 效率又比 選擇排序法要高一些
function
insertsort
(&$arr)
//插入(這時就給$inserindex找到適當的位置)
$arr[$inserindex+1] = $insertval;
}}
/**
* 快速排序方法
* php快速排序方法
* $order asc 小到大 desc大到小 預設是asc
* $order 的值只能為 asc desc 如果亂寫乙個值也是按asc排序的
*/function
quicksort2
($arr,$order = 'asc')
else
} $arr_left = quicksort($arr_left,$order);
$arr_right = quicksort($arr_right,$order);
return array_merge($arr_left,array($val),$arr_right);
}
//下面是查詢
$arr=array(46,90,900,0,-1);
//這是按順序查詢
function
search
(&$arr,$findval)
}if(!$flag)
}
//呼叫二分查詢
$arr=array(0,90,900,99990);//注意,一定要是有序的
binaryswarch($arr,90,0,count($arr)-1);
//二分查詢函式,它有乙個前提,查詢的陣列必須是有序的
function
binarysearch
(&$arr,$findval,$leftindex,$rightindex)
//首先找到中間這個數 round是出於如果出現小數,四捨五入
$middleindex=round(($rightindex+$leftindex)/2);
//如果大於則向後面找
if($findval > $arr[$middleindex])else
if($findval
< $arr[$middleindex])else
}
function
bin_sch
($array, $low, $high, $k)elseif ($k
< $array[$mid])else
}return -1;
}
php 常用的兩個設計模式
b 1.工廠模式 b 工廠模式提供了乙個在實時狀態下例項化物件的機制。class creditcardprocessor return new provider cc creditcardprocessor factory paypal 執行結果如下圖所示 img b 2.單例模式 b 單例模式在確...
PHP實現合併兩個排序鍊錶的方法
問題 輸入兩個單調遞增的鍊錶,輸出兩個鍊錶合成後的鍊錶,當然我們需要合成後的鍊錶滿足單調不減規則。解決思路 簡單的合併排序。由於兩個數列本來就是遞增的,所以每次將兩個數列中較小的部分拿過來就可以了。實現 function merge phead1,phead2 else www.cppcns.com...
實現兩個DataTable的聯合查詢
原來聯合查詢的基礎是這樣的。如方法一描述 將子表的陣列追加到主表陣列的下面。從而實現類似於檢視 單錶 的效果。那麼left join inner join 和right join outer join 將如何實現呢?明天仔細考慮下,看看有沒有辦法。不用任何sql語句的 方法一 public data...