改善された直接挿入sort_PHPチュートリアル

WBOY
リリース: 2016-07-13 17:52:23
オリジナル
993 人が閲覧しました

ストレート挿入ソートの基本的な考え方は、ソートされる n 個の要素を順序付きリストと順序なしリストとして扱うことです。最初は、順序付きリストには 1 つの要素のみが含まれ、順序なしリストには n -1 個の要素が含まれます。ソート処理は、毎回、順序なしリストから最初の要素を取り出し、順序付きリストの適切な位置に挿入して、新しい順序付きリストを作成します。これを n-1 回繰り返して、ソート処理を完了します。
a[i] を a[0]、a[1]、...、a[i-1] に挿入する具体的な実装プロセスは次のとおりです。まず a[i] を変数 t に代入し、次に t を順番に代入します。 a[i-1]、a[i-2]、... そして、特定の j (0 改善方法
検索比較操作とレコード移動操作を交互に行う方式。
具体的な方法:
挿入するレコード R[i] のキーワードと、順序付けされた領域内のレコード R[j] (j=i-1, i-2,...,1) のキーワードを右から左に比較します。 ① R[j] のキーワードが R[i] のキーワードより大きい場合、R[j] を 1 つ後ろに移動します。 ②R[j]のキーワードがR[i]のキーワード以下であれば検索処理を終了し、j+1がR[i]の挿入位置となります。
R[i] より大きいキーワードを持つレコードは後方に移動されているため、j+1 の位置は空になっています。この位置に R[i] を直接挿入する限り、直接挿入ソートを完了できます。
つまり、新しいシーケンスの終わりから比較を開始し、シフトを実行します。 PHPコード:
[php]
エコー '

';
$arr = 配列(90,5,3,9,2,6,10,30,0,0,0,0,0);
print_r(挿入ソート($arr));

関数 insertSort($arr){
$res = array();//挿入するスペース
$res[0] = $arr[0];//最初の文字を最初に入れます
for($i=1;$i $c = count($res);//ループ数を計算する
for($j=$c;$j>=0;$j--){
($res[$j-1] $res[$j] = $arr[$i]; 。 }その他{
$res[$j] = $res[$j-1];//後方にシフト
                                                                       }
}
$res を返します
}
?>
著者:dats0407



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

www.bkjia.com

tru​​e

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

技術記事ストレート挿入ソートの基本的な考え方は、ソートされる n 個の要素を順序付きリストと順序なしリストとして扱うことです。最初は、順序付きリストには 1 つの要素しか含まれていません...
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!