ホームページ 毎日のプログラミング PHPの知識 選択ソートアルゴリズムの詳細な分析

選択ソートアルゴリズムの詳細な分析

May 01, 2020 pm 03:54 PM
1

選択ソート

選択ソートは、最も安定した並べ替えアルゴリズムの 1 つであり、使用する場合はデータ サイズが小さいほど優れています。理論的に言えば、選択ソートは、ほとんどの人がソート時に考える最も一般的な方法でもあります。

選択ソートは、シンプルで直感的なソートアルゴリズムです。その仕組みは次のとおりです:

配列をループし、その過程で最大値と配列内のその位置を見つけます。次に、最大値を持つユニットの位置を配列の最後のユニットと「交換」します。これを行った後、配列内の最大値を最後の位置に配置する必要があります。

上記のプロセスで残りのデータを引き続き走査し、同じことを行います。このとき、残りの部分の最大値は、全体として最後から 2 番目の位置に配置することもできます。 。

などなど。 。 。 。 。 。

イラスト:

オリジナル配列
18 22
12 15 23
9
初めての旅行 18
22 12 15 9 23
2回目の旅行 18 9 12 15 22 2 3
3回目の旅行 15 9 12 18 22 23
4回目の旅行 12 9 15 18 22 2 3
5回目の旅行 9 12 15 18 22 23

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

<?php
        $arr1 = array(18,22,12,15,23,9);
        $n = count($arr1);
        for ($i=0; $i < $n-1; $i++) { 
            //找最大值
            $max = $arr1[0];
            $max_key = 0;
            for ($k=0; $k < $n - $i; $k++) { 
                if ($arr1[$k] > $max) {
                    $max = $arr1[$k];
                    $max_key = $k;
                }
            }
            //交换
            $temp = $arr1[$max_key];
            $arr1[$max_key] = $arr1[$n-1-$i];
            $arr1[$n-1-$i] = $temp;
        }
ログイン後にコピー

ルールの概要: 1. 最大のものを見つける開始値から終了値 (および添え字)、交換回数は $n-1、$n は配列の長さ

2 です。毎回行う必要があることは次のとおりです。 a) 最大値を見つけます。 ) そして、この旅行の最後の項目との最大値交換を追加します

3. 各旅行の最大値を見つけるためのデータの数は、前の旅行より 1 つ減り、そのうちの最初の旅行には $n があります。


以上が選択ソートアルゴリズムの詳細な分析の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)