ホームページ  >  記事  >  バックエンド開発  >  PHP バブルソート バイナリサーチ シーケンシャルサーチ 2次元配列ソートアルゴリズムの詳細解説 関数_PHPチュートリアル

PHP バブルソート バイナリサーチ シーケンシャルサーチ 2次元配列ソートアルゴリズムの詳細解説 関数_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-21 15:03:28850ブラウズ

データ構造は非常に重要です。アルゴリズム + データ構造 + ドキュメント = プログラム
PHP を使用してバブル ソート アルゴリズムを記述します。オブジェクトは配列にすることができます

コードをコピーします コードは次のとおりです:

//バブルソート (配列ソート)
function bubble_sort($array) {
$count = count($array);
if ($count return false;
for($i=0; $ifor($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 を使用して、逐次検索およびバイナリ検索 (バイナリ検索とも呼ばれます) アルゴリズムを記述します。 オブジェクトは順序付けされた配列にすることができます
コードをコピーします。は次のとおりです:
//二分探索 検索 (配列内の要素を見つける)

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;
}

//逐次検索(配列内の要素を検索)

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;
}
}


汎用性があり、PHP 組み込み関数を呼び出すことができる 2 次元配列ソート アルゴリズム関数を作成します


コードをコピーします
コードは次のとおりです次のように:
//二次元配列のソート、$arr はデータ、$keys はソートのキー値、$order はソート規則、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;
}




http://www.bkjia.com/PHPjc/327838.html

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/327838.html技術記事データ構造は非常に重要です。アルゴリズム + データ構造 + ドキュメント = プログラムは PHP を使用してバブル ソート アルゴリズムを記述します。オブジェクトは次のようにコードをコピーします: //バブル ソート (配列ソート)...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。