PHPソートアルゴリズムの完全実装

PHPソートアルゴリズムの完全実装

PHP を学習しているときに、PHP のソート問題に遭遇することがあります。ここでは、PHP のソート問題の解決策を紹介し、皆さんと共有します。毎年、時々データ構造を見なければなりませんが、そのたびに、多くのことを十分に学んでいないと感じます。ため息。

#T#今日は PHP を使って 4 つのソートアルゴリズムを実装しました。また、ヒープソートとマージソートは記述されていません。挿入ソート、選択ソート、バブルソートはいずれも時間計算量が O(N2) であるため、実用上はあまり意味がありません。実際のテストでは、3,000 個の配列要素に対してソートを実行しましたが、3 つのソートアルゴリズムはすべて約 80 秒かかりましたが、クイックソートはわずか 8 秒でした。この差は確かにかなり大きいです。ご興味があれば、ご自身でテストしてみてください。 PHP ソート アルゴリズムの実装を詳しく見てみましょう。

  1. <?  
  2. //挿入ソート(1次元配列)
  3. 関数 insert_sort($arr){
  4. $ count count = count($arr);
  5. ($ i = 1 ; $ i < $ count; $ i++){
  6. $ tmp = $arr[$i];
  7. $ i = $ i - 1;
  8. $arr[$j] > $tmp の間{
  9. $arr[$j+1] = $arr[$j];
  10. $arr[$j] = $tmp;
  11. $j--;
  12. }
  13. }
  14. $arr を返します。
  15. }
  16.  
  17.  
  18. //選択ソート(1次元配列)
  19. 関数 select_sort($arr){
  20. $ count count = count($arr);
  21. ($ i = 0 ; $ i < $count; $ i++){
  22. $ k = $i;
  23. ($ j =$i+1; $j < $count; $j++){
  24. ($arr[$k] > $arr[$j])の場合
  25. $ k = $j;
  26. ($k != $i)の場合{
  27. $ tmp = $arr[$i];
  28. $arr[$i] = $arr[$k];
  29. $arr[$k] = $tmp;
  30. }
  31. }
  32. }
  33. $arr を返します。
  34. }
  35.  
  36. //バブルソート(1次元配列)
  37. 関数 bubble_sort($array){
  38. $ count count = count($array);
  39. $count < = 0 の場合は false を返します。
  40.  
  41. ($ i = 0 ; $ i < $count; $ i++){
  42. ($ j =$count-1; $j > $i; $j--){
  43. ($配列[$j] < $配列[$j-1])の場合{
  44. $ tmp = $array[$j];
  45. $配列[$j] = $配列[$j-1];
  46. $配列[$j-1] = $tmp;
  47. }
  48. }
  49. }
  50. $配列を返します。
  51. }
  52.  
  53. //クイックソート(1次元配列)
  54. 関数 quick_sort($array){
  55. count($array) < = 1 の場合、$array を返します。
  56.  
  57. $キー= $配列[0];
  58. $ left_arr =配列();
  59. $ right_arr =配列();
  60. ($ i = 1 ; $ i < count ($array); $ i++){
  61. ($配列[$i] < = $キー)の場合
  62. $left_arr[] = $array[$i];
  63. それ以外
  64. $right_arr[] = $array[$i];
  65. }
  66. クイックソート
  67. クイックソート
  68.  
  69. array_merge($left_arr、配列($key)、$right_arr) を返します。
  70. }
  71.  
  72. ?>  

<<:  PHPの再帰アルゴリズムについて話す

>>:  体験談まとめ VB.NET 暗号化アルゴリズムの分類

ブログ    
ブログ    
ブログ    
ブログ    

推薦する

AI コンピューティング センター構築熱の背後で、お金を無駄にしているのは誰か?

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

...

ImageNetは人間の顔をぼかすことにしたが、ハスキー犬の顔の写真の認識率は急上昇した

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

人工知能とモノのインターネット: インターネット通信の未来

人工知能 (AI) とモノのインターネット (IoT) の登場により、通信およびインターネット技術業...

GPT-4 だけが自己改善可能、GPT-3.5 はできない、MIT と Microsoft のコード生成実験で新たな発見

大規模言語モデル (LLM) は、自然言語からコード スニペットを生成できることが示されていますが、...

AI バイアス: なぜ起こるのか、そして企業はどのように修正できるのか

ビジネスや社会で AI の利用が広まるにつれ、企業は機械モデルに現れる人間の偏見に注意を払う必要があ...

口コミの逆転、Pika 1.0の試用効果は多くの人々を納得させ、「最高のビデオジェネレーター」と呼んだ

先月末、Pika 1.0と呼ばれる動画生成AIモデルがソーシャルメディア上で話題になった。3Dアニメ...

GPT-4V の医師免許試験の点数は、ほとんどの医学生よりも高いです。AI がクリニックに参加するまでにはどれくらい時間がかかりますか?

医用画像診断における人工知能(AI)の応用は大きな進歩を遂げました。しかし、厳密なテストがなければ、...

ピュー研究所:アルゴリズム時代の7つの主要テーマとその主な影響

世界的に権威のある調査機関であるピュー研究所は最近、「アルゴリズムの時代」と題する報告書を発表し、1...

人工知能は人間の言語を習得したのか?見た目は騙されることがある

[[247418]]人工知能の分野における成果は、誤解されやすく、過大評価されやすい。このことは、人...

Nature の調査: AI が「必需品」になったと考える科学者はわずか 4%

AI に関する論文数は劇的に増加していますが、本当に AI が「必須」であると考えている研究者はわ...

人工知能は産業の発展を助け、将来の生活は期待に値する

人工知能技術が生活のあらゆる分野で登場し、スマート経済が繁栄するにつれて、人類の文明は新たな段階に入...

トレンド | AIを学ぶには、まず2018年の人工知能に関する13の予測を理解する必要があります

[[214541]] 2017 年は、ウォール ストリート ジャーナル、フォーブス、フォーチュンなど...

AISpeechの趙恒毅氏:国内のスマート音声産業は幅広い発展の見通しがある

[51CTO.comからのオリジナル記事] 人工知能の急速な発展に伴い、音声インタラクションは人工知...