組み込み関数を使用せずに PHP で配列をソートするための 2 つのアルゴリズム コード_PHP チュートリアル

WBOY
リリース: 2016-07-21 15:41:25
オリジナル
780 人が閲覧しました

友人が仕事を探しているときにテストの問題に遭遇しました。メモしてください。
今後遭遇する可能性が非常に高いです。
問題: PHP は配列のソートに組み込み関数を使用しません。降順または昇順になる可能性があります
最初の方法: 伝説のバブリングメソッド

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

function arraysort($data, $order = 'asc') {
//asc 昇順 降順
$temp = array ();
$count = count ($data); )
return false; //間違ったデータを受信
if ($order == 'asc') {
for($i = 0; $i for($j = $ count - 1; $j > ; $i; $j --) {
if ($data [$j] < $data [$j - 1]) {
//2 つのデータの位置を交換します
$temp = $data [$j] ;
$data [$j] = $data [$j - 1] = $temp; ($i = 0; $ i < $count; $i ++) {
for($j = $count - 1; $j > $i; $j --) {
if ($data [$ j] > $data [ $j - 1]) {
$temp = $data [$j] = $data [$j - 1]; ] = $temp;
}
}
}
}
return $data;
$data = 配列 (7, 5, 3, 8, 9, 1, 5, 3, 1, 24, 3, 87, 0, 33, 1, 12 , 34, 54, 66, 32 );
var_dump ( arraysort ( $data ) ); // 昇順
echo ('
'); 'desc') );// 降順


2番目のメソッド: 何と呼んでいいのかわからないので、挿入メソッドと呼びましょう!囧



コードをコピーします

コードは次のとおりです:


function arraysort3($data, $order = 'asc') {
//現在は昇順のみを実行しています
$count = count ($data) ;
for( $i = 1; $i $temp = $data [$i] $j = $i - 1; ] > $ temp ) { $data [$j + 1] = $data [$j]; $data [$j] = $temp;//なぜ減らすべきか:上位ビットをビットごとに} }
return $data;
$data = array (7, 5, 3, 8, 9, 1, 5, 3, 1, 24, 3, 87, 0, 33 , 1, 12, 34, 54 , 66, 32 );
var_dump ( arraysort3 ( $data ) );



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

www.bkjia.com

tru​​e

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

技術記事

友人が仕事を探しているときにテストの問題に遭遇しました。メモしてください。 今後も遭遇する可能性が非常に高いです。 質問: PHP は配列の並べ替えに組み込み関数を使用しません。降順または昇順にすることができます。最初の方法は...

です。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート