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

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

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

ビデオ: データ構造とアルゴリズム #01 アルゴリズムを学ぶにはC言語が必須だ | PythonやJavaではダメな理由 2025
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のクイックソート手法はどのように機能しますか? - ダミー

エディタの選択

SketchUpのステータスバー - ダミー

SketchUpのステータスバー - ダミー

SketchUpのステータスバーには、モデリング中に使用するコンテキスト情報が含まれています。モデリングウィンドウの下の狭い情報には、情報の良さが満載されています。コンテキスト固有の指示:ほとんどの場合、ここでは何をしているのかを確認するためにここでチェックします。モディファイアキー(組み合わせて使用​​するキーボードストローク)

スケッチツールにインテリジェントに反応するよう設計されたダミー

スケッチツールにインテリジェントに反応するよう設計されたダミー

ダイナミックコンポーネント(DC) SketchUpが提供する真の魔法に最も近いもの。あなたがそれらを拡大縮小するときに、伸ばしたり歪んだりするのではなく、寸法を変更するはずの部品は、他の部分はしません。

SketchUpの投影テクスチャ曲線にテクスチャを追加する方法 - 複雑な曲線に画像を描くためのダミー

SketchUpの投影テクスチャ曲線にテクスチャを追加する方法 - 複雑な曲線に画像を描くためのダミー

SketchUpのサーフェスには、このメソッドの代わりはありません。地形の塊は、複雑な曲面の良い例です - 凹凸、ねじれ、波紋、多方向。扱っているカーブが単純な押し出しよりも複雑な場合は、この画像マッピングテクニックを使用する必要があります。キー...

エディタの選択

QuickBooks 2013のアイテムリストにSales Tax ItemまたはGroupを追加する方法 - ダミー

QuickBooks 2013のアイテムリストにSales Tax ItemまたはGroupを追加する方法 - ダミー

販売税の対象となる商品を販売する場合、QuickBooks 2013請求書には、これらの売上税を請求して追跡する広告申込情報も含まれます。これを行うには、売上税明細を登録します。販売税項目を登録するには、新規項目ウィンドウを表示し、タイプ...から販売税項目を選択します。

QuickBooks 2012のアイテムリストにサービスアイテムを追加する方法 - ダミー

QuickBooks 2012のアイテムリストにサービスアイテムを追加する方法 - ダミー

QuickBooks 2012でサービスアイテムを使用して、サービスを表すアイテムを購入または請求します。たとえば、CPAは、個人や企業に対して納税申告書を作成します。納税申告書を準備するためにクライアントに請求する場合、納税申告書の請求書に表示される明細はサービス項目です。 ...

QuickBooks 2013のアイテムリストにサービスアイテムを追加する方法 - ダミー

QuickBooks 2013のアイテムリストにサービスアイテムを追加する方法 - ダミー

QuickBooks 2013のサービスアイテムを使用して、サービスを表すアイテムを購入または請求します。たとえば、CPAは、個人や企業に対して納税申告書を作成します。納税申告書を準備するためにクライアントに請求する場合、納税申告書の請求書に表示される明細はサービス項目です。 ...

エディタの選択

WordPressブログのユーザーと著者を管理する方法 - ダミー

WordPressブログのユーザーと著者を管理する方法 - ダミー

WordPressユーザーページには、あなたのブログのすべてのユーザーが表示されます。各ユーザーのユーザー名、名前、電子メールアドレス、ブログの役割、およびブログに投稿された投稿の数が表示されます。フォロワー:このデフォルトロールは、...

WordPress Permalinkをサーバーと連携させる方法 - ダミー

WordPress Permalinkをサーバーと連携させる方法 - ダミー

デフォルト以外のオプションを使用してWordPressサイトのパーマリンクの場合、WordPressは特定のルールまたはディレクティブを.txtファイルに書き込みます。あなたのWebサーバー上のhtaccessファイル。 permalinkによると、htaccessファイルはあなたのWebサーバーと交信して、パーマリンクをどのように提供すべきかを示します。

WordPressブログを修正する方法 - ダミー

WordPressブログを修正する方法 - ダミー

WordPressブログをインストールした後、それがリンクされているウェブサイトに合ったブログ。既存のテーマ(スキン)を変更したり、WordPressをインストールした後に使用できる代替語句を選択することができます。選択したテンプレートがメインWebサイトに似ていることを確認してください。ただし、WordPressは...