ホームページ バックエンド開発 Python チュートリアル Python で選択ソートアルゴリズムを学習して実装する

Python で選択ソートアルゴリズムを学習して実装する

Feb 03, 2024 am 09:04 AM
原理 成し遂げる 選択ソート 配置

Python で選択ソートアルゴリズムを学習して実装する

Python での選択ソートの原理と実装を理解する

Selection Sort は、シンプルで直感的なソート アルゴリズムです。その基本的な考え方は、配列を毎回走査し、選択することです。未ソート部分の最小 (または最大) 要素を選択し、その位置を未ソート部分の最初の要素と交換し、未ソート部分から最小 (または最大) 要素を選択し続けるという手順を、配列全体が完了するまで繰り返します。順序付けられました。選択ソートの時間計算量は O(n^2) であり、不安定なソート アルゴリズムです。

以下では、特定のコード例を使用して、選択並べ替えの実装プロセスを説明します。

def selection_sort(arr):
    n = len(arr)
    for i in range(n-1):
        min_idx = i
        for j in range(i+1, n):
            if arr[j] < arr[min_idx]:
                min_idx = j
        arr[i], arr[min_idx] = arr[min_idx], arr[i]
ログイン後にコピー

上記は選択ソートアルゴリズムの実装コードです。次に、このコードの原理とプロセスをステップごとに説明します。

まず、並べ替える配列 arr をパラメータとして受け取るselection_sort関数を定義します。

関数本体では、まず配列の長さ n を取得します。これは、n-1 回反復することになります。各反復で最小の要素が正しい位置に配置されるため、最後の要素は必要ありません。もう一度並べ替えます。

次に、2 つのネストされた for ループを使用して、選択の並べ替えプロセスを実行します。外側のループは 0 から n-1 まで進み、ソートされる部分の開始位置 i を表します。

内側のループは i 1 から n までで、並べ替えられる部分の要素 j を表します。 j と開始位置 i の要素を比較します。j が開始位置 i の要素より小さい場合、min_idx は j に更新され、j がこれまでに見つかった最小の要素のインデックスであることを示します。

内側のループが終了すると、見つかった最小要素の位置を開始位置 i の要素と交換し、現在の反復で最小要素が正しい位置に配置されるようにします。

n-1 回の反復を通じて、配列全体が昇順に配置されていることを確認できます。

次に、次のコードを使用して、選択による並べ替えの効果をテストできます:

arr = [64, 25, 12, 22, 11]
selection_sort(arr)
print("排序后的数组:")
for i in range(len(arr)):
    print(arr[i], end=" ")
ログイン後にコピー

出力結果は次のとおりです: 11 12 22 25 64。これは、配列が昇順で並べ替えられたことを意味します。注文。

実際の使用では、選択ソートは効率が低いため、クイック ソートやマージ ソートなど、他のより効率的なソート アルゴリズムを使用することを好みます。ただし、選択ソートはシンプルで理解しやすいソート アルゴリズムであり、初心者がソート アルゴリズムの基本原理と考え方を理解するのに役立ちます。

要約すると、選択ソートとは、毎回未ソート部分から最小 (または最大) の要素を選択し、それをソート済み部分の最後に置き、複数回の反復を経て、最終的に順序付けの目的を達成することです。配列全体。選択ソートの原理と実装をマスターすることは、ソートアルゴリズムの深い理解とプログラミング能力の向上にとって非常に重要です。

以上がPython で選択ソートアルゴリズムを学習して実装するの詳細内容です。詳細については、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)

Apple 携帯電話のトラフィックを確認する方法 Apple 携帯電話のトラフィックを確認する方法 May 09, 2024 pm 06:00 PM

Apple でデータ使用量を確認する方法 1. Apple 携帯電話でデータ使用量を確認する具体的な手順は次のとおりです。 電話機の設定を開きます。 「セルラー」ボタンをクリックします。携帯電話ネットワーク ページを下にスクロールして、各アプリケーションの具体的なデータ使用量を確認します。 「適用」をクリックして、許可されたネットワークも設定します。 2. 電話機の電源を入れ、電話機のデスクトップで設定オプションを見つけ、クリックして入力します。設定インターフェイスで、下のタスクバーで「セルラーネットワーク」を見つけ、クリックして入力します。セルラーネットワークインターフェースで、ページ上の「使用法」オプションを見つけてクリックして入力します。 3. 別の方法は、携帯電話を使用して自分でトラフィックを確認することですが、携帯電話は合計使用量のみを確認でき、残りのトラフィックは表示されません。iPhone の電源を入れ、「設定」オプションを見つけて開きます。 「蜂」を選択

Windows 11 でスナップショット レイアウトを無効にする方法_win11 でスナップショット レイアウトを使用しない場合のヒント Windows 11 でスナップショット レイアウトを無効にする方法_win11 でスナップショット レイアウトを使用しない場合のヒント May 08, 2024 pm 06:46 PM

Win11 システムは、[最大化] ボタンを通じてさまざまなウィンドウ レイアウト オプションをユーザーに提供する新しい [スナップショット レイアウト] を発表しました。これにより、ユーザーは複数のレイアウト テンプレートから選択して、開いているアプリケーションを画面上に 2 つ、3 つ、または 4 つ表示できます。これは、複数のウィンドウを画面の横にドラッグしてすべてを手動で調整する場合よりも改善されています。 [SnapGroups] は、ユーザーが使用しているアプリのコレクションとそのレイアウトを保存し、ユーザーが停止して別のことを行う必要があるときに簡単にその設定に戻ることができるようにします。ユーザーがプラグを抜く必要があるモニターを使用している場合、再ドッキングすると、以前に使用したスナップショット レイアウトも復元されます。スナップショット レイアウトを使用するには、キーボード ショートカット WindowsKey+Z を使用して開始できます。

vscode でリスト ページをアルファベット順に並べ替える方法 vscode でリスト ページをアルファベット順に並べ替える方法 vscode でリスト ページをアルファベット順に並べ替える方法 vscode でリスト ページをアルファベット順に並べ替える方法 May 09, 2024 am 09:40 AM

1. まず、vscode インターフェイスを開いた後、ページの左下隅にある設定アイコン ボタンをクリックします。 2. 次に、ドロップダウン ページ列の [設定] オプションをクリックします。 3. 次に、ジャンプしたウィンドウで [エクスプローラー] オプションを見つけます。 4. 最後に、ページの右側で [OpenEditorsnaming] オプションをクリックし、ドロップダウン ページからアルファベット順のボタンを選択して設定を保存し、アルファベット順の並べ替えを完了します。

AIによるボトル型テキストレイアウト効果作成の作業工程 AIによるボトル型テキストレイアウト効果作成の作業工程 May 06, 2024 pm 02:28 PM

1. AIでボトルの素材画像を開き、側面に作成する必要があるテキストコンテンツを入力します。 2. ボトルの塗りつぶしの色をキャンセルし、ボトルをストロークするだけで中空の閉じたパスを形成します。 3. 文字のフォントサイズ、フォント、行間を調整し、ボトルのレイヤーを一番上に配置します。 4. テキストとボトルを同時に選択し、「オブジェクト」-「エンベロープ歪み」-「トップレベルオブジェクトで作成」をクリックすると、ボトルの形をしたテキストグループが得られます。 5. テキストをダブルクリックして分離モードに入り、テキストの内容を変更したり、色を変更したりできます。変更後、隔離モードを終了するときにボトルの形状は影響を受けません。最終的な効果は以下の通りです。

aiで着信テキストを設定する方法 - aiで着信テキストを設定する具体的な方法 aiで着信テキストを設定する方法 - aiで着信テキストを設定する具体的な方法 May 06, 2024 pm 05:58 PM

1. まず、インターフェイスを開いた後、楕円ツールをクリックして正円を描きます。 2. 左側のパステキストツールボタンをクリックして、円形の枠に沿ってテキストを入力します。 3. マウスで文字を選択し、文字パネルを開き、フォント サイズを 20.7 pt4 に設定します。円を選択し、効果メニューで 3D オプションをクリックし、回転ボタンを選択します。 5. 開いた 3D 回転オプション設定で、位置オプションをカスタム回転効果に設定し、パラメータを変更して をクリックします。保存してOK 6. 最後にリングです テキストに赤の塗りつぶし効果を追加するだけです

matplotlib を使用して Python でグラフを生成する方法 matplotlib を使用して Python でグラフを生成する方法 May 05, 2024 pm 07:54 PM

Matplotlib を使用して Python でグラフを生成するには、次の手順に従います。 Matplotlib ライブラリをインストールします。 Matplotlib をインポートし、plt.plot() 関数を使用してプロットを生成します。グラフをカスタマイズし、タイトル、ラベル、グリッド、色、マーカーを設定します。 plt.savefig() 関数を使用して、チャートをファイルに保存します。

コンピューターを組み立てるときにワイヤレス ネットワーク カードを接続できますか? コンピューターを組み立てるときにワイヤレス ネットワーク カードを接続できますか? May 08, 2024 am 09:13 AM

コンピューターを組み立てるときにワイヤレス ネットワーク カードを接続できますか?まず、ここで言うワイヤレスネットワークカードとは、2G/3G/4Gワイヤレスネットワークカード、つまりワイヤレスネットワークカードのことですよね?私の答えは「はい」です。ただし、次のような USB ワイヤレス ネットワーク カードをサポートする AP も必要です。 (Juli でのみ使用。推奨される製品ではありません) デスクトップ コンピュータを組み立てて、ワイヤレス ネットワーク カードを使用してインターネットにアクセスできますか?ネットワーク カードは、オンボード ネットワーク カード、独立したネットワーク カード、またはワイヤレス ネットワーク カードのいずれであっても、ネットワーク カードがなければインターネットにアクセスできません。現在のマザーボードにはネットワーク カードが組み込まれているため、コンピュータを組み立てるときに別のネットワーク カードはインストールされないのが一般的です。そのため、現在組み立てられているコンピュータでは、ノートブックのようなワイヤレス インターネット アクセスを使用できません。ワイヤレス ネットワーク カードがインストールされていないプレーヤーでも、必要に応じて接続できます。

Javaでマージを使用する方法 Javaでマージを使用する方法 May 09, 2024 am 06:03 AM

Java コレクションの merge() メソッドは、ソートされて順序付けされた 2 つのコレクションをマージして、元の順序を維持したまま新しいソートされたコレクションを生成します。構文: public static <T> List<T> merge(SortedMap<T, Double> a, SortedMap<T, Double> b)。 2 つのソートされたコレクションを受け入れ、ソートされた順序ですべての要素を含む新しいコレクションを返します。注: 重複キーの値はマージ関数に従ってマージされ、元のコレクションは変更されません。

See all articles