個人財務 Javaのクイックソート手法はどのように機能しますか? - ダミー

Javaのクイックソート手法はどのように機能しますか? - ダミー

ビデオ: データ構造とアルゴリズム #01 アルゴリズムを学ぶにはC言語が必須だ | PythonやJavaではダメな理由 2024

ビデオ: データ構造とアルゴリズム #01 アルゴリズムを学ぶにはC言語が必須だ | PythonやJavaではダメな理由 2024
Anonim

ここでは、Javaで最も一般的に使用されるソート手法の1つが実際にどのように機能するかを説明します。このテクニックは Quicksort、 と呼ばれ、非常に巧妙な再帰の使用方法です。

ほとんどの人にとって、クイックソートのようなソートアルゴリズムは単に知的な運動にすぎないと考えています。 Java APIにはすでにソートが組み込まれています。

クイックソート手法は、再帰を使用して値の配列をソートします。基本的な手順はこうです:

<! - 1 - >
  1. 配列内の値の範囲内にある任意の値を選択します。

    この値は ピボットポイント です。ピボットポイントを選択する最も一般的な方法は、配列内の最初の値を単純に選択することです。フォークはより洗練された方法で博士号を書いてピボットポイントを選んで、より速いソートを実現しています。配列の最初の要素を使用してください。

  2. ピボットポイントより小さいすべての値が配列の左側にあり、ピボットポイント以上のすべての値がピボットポイントの右側にあるように、配列の値を並べ替えますアレイ。

    <! - 2 - >

    ピボット値 は、配列の左側と右側の境界を示します。それはおそらく死んだセンターではありませんが、それは問題ではありません。このステップは パーティショニングと呼ばれ、 はアレイの左右が999パーティションです。 配列の2つのセクションのそれぞれを別々の配列として扱い、そのセクションに対してステップ1から始めます。

  3. それはアルゴリズムの再帰的な部分です。

    <! - 3 - >

    クイックソートアルゴリズムの最も難しい部分は、ピボットポイントよりも小さいすべての値が左にあり、ピボットより大きいすべての要素が左にあるようにパーティションを再配置する必要があるパーティショニングステップですポイントは右側です。配列に以下の10個の値があるとします。

38 17 58 22 69 31 88 28 86 12

ここでピボットポイントは38であり、パーティショニングステップのタスクは次のような配列に並べ替えることです: 17 12 22 28 31 38 88 69 86 58

値がまだ順不同であることに注意してください。しかし、配列は値38の周りで分割されています。38未満のすべての値は38の左にあり、38を超えるすべての値は38の右にあります。

これで、値38で2つのパーティションに分割し、それぞれのプロセスを繰り返します。ピボット値そのものは左側のパーティションと同じですので、左側のパーティションは次のようになります。

17 12 22 28 31 38

このとき、パーティション化ステップでは、ピボットポイントとして17が選択され、次のようにエレメントが再配置されます。 > 12 17 22 28 31 38

ご覧のとおり、配列のこの部分がソートされています。残念ながら、Quicksortはこの時点でそれを認識していないので、確かめるためにはさらにいくつかの再帰が必要です。しかし、それは基本的なプロセスです。
Javaのクイックソート手法はどのように機能しますか? - ダミー

エディタの選択

Drupalフォーラムの有効化 - ダミー

Drupalフォーラムの有効化 - ダミー

フォーラムはユーザーコミュニティを作成するのに最適です。人々は他者からの援助を得ることができ、あなたのコンテンツに関するフィードバックを提供し、単純に社会化することができます。あなたのDrupalフォーラムは、あなたが望むようにしっかりとまたはゆるやかに制御することができます。フォーラムで許可されているカテゴリを制御できます。フォーラムの例を見るには、Drupal Forumを参照してください。 ...

ドリューパルフレンドリーなウェブホスティング会社 - ダミー

ドリューパルフレンドリーなウェブホスティング会社 - ダミー

ウェブホスティング会社は、あなたがDrupalをインストールし、あなたのサイトをウェブ上に見えるようにするWebサーバー。一部の企業では、Drupalをインストールしたり、ワンクリックでインストールすることができます。あなたがDrupalのインストールをスキップする場合は、次のいずれかのアカウントを取得することを検討してください。

Drupalガーデンサイト構造管理 - ダミー

Drupalガーデンサイト構造管理 - ダミー

Drupal Garden Structureページでは、 、ページ、およびブロックを表示します。このページから制御できる特定の機能、ブロック、およびページには、連絡先フォーム、フォーラム、メーリングリストなどがあります。ブロックで表示される機能をブロックで管理することもできます。

エディタの選択

エグゼクティブとのデータマイニング - ダミー

エグゼクティブとのデータマイニング - ダミー

数字で遊ぶという楽しみのためにデータマイニングに取り掛からない。あなたは行動を望む。あなたは正しいことを見たいと思っています。データからの確かな証拠に基づいてビジネス上の決定を下すことが重要であることを理解しています。しかし、あなたは決定を下す権限を持つ人ではありません。だからあなたは...

ビッグデータガバナンスチャレンジ - ダミー

ビッグデータガバナンスチャレンジ - ダミー

データガバナンスは、大きなデータソースが彼らがどのように管理されているか。従来のデータウェアハウスやリレーショナルデータベース管理の世界では、データ保護の必要性に関するルールをよく理解している可能性があります。たとえば、医療界では、それは...

エディタの選択

エレクトロニクスコンポーネント:赤外線ライトダミーを作成する方法

エレクトロニクスコンポーネント:赤外線ライトダミーを作成する方法

赤外線を電気的に生成するには、赤外線スペクトルで動作する特殊な発光ダイオード(LED)を使用します。赤外線LED(しばしばIR LEDと呼ばれる)は、RadioShackまたは電子部品を販売する他の店で容易に入手できます。 IR LEDは、通常のLEDと似ていますが、光を見ることはできません。

デジタルエレクトロニクス:キット74のDOSコマンド - ダミーの

デジタルエレクトロニクス:キット74のDOSコマンド - ダミーの

を通して、あなたの電子プロジェクトを制御する場合パラレルポートであるKit 74 DOSソフトウェアは、コマンドプロンプトから実行できるRELAY、DELAY、WAITFORの3つのコマンドで構成されています。 RELAYコマンドRELAYコマンドは、1バイトのデータをパラレルポートに送信します。あなたから実行できること - RELAY、DELAY、およびWAITFOR - 8つの出力端子のそれぞれが...

デジタルエレクトロニクス:フリップフロップ回路の種類? - エレクトロニクスではダミー

デジタルエレクトロニクス:フリップフロップ回路の種類? - エレクトロニクスではダミー

、フリップフロップは特殊なタイプのゲートラッチ回路です。フリップフロップにはいくつかの異なるタイプがあります。フリップフロップの最も一般的なタイプは次のとおりです。SRフリップフロップ:SRラッチに似ています。 CLOCK入力に加えて、SRフリップフロップにはSETとRESETという2つの入力があります。 SET入力がHIGHの場合...