Java言語で実装されたクイックソートアルゴリズム
Java 言語に基づくクイック ソート アルゴリズムの実装方法
クイック ソートは、大量のデータをソートするためによく使用される効率的なソート アルゴリズムです。この記事では、Java言語に基づくクイックソートアルゴリズムの実装方法と具体的なコード例を紹介します。
クイックソートの基本的な考え方は、ソート対象のデータを独立した2つの部分に分割することです。たとえば、1つの要素を基準値として、その値より小さい要素を左側に配置し、値より大きい要素は左側、右側に配置されます。次に、シーケンス全体がソートされるまで、これら 2 つの部分を別々にすばやくソートします。
まず、データを分割する Partition 関数を実装する必要があります。この関数は、ピボットを選択する (通常はシーケンス内の最初の要素を選択する) ことによってシーケンス全体を 2 つの部分に分割し、ピボットの位置を返します。具体的なコードは次のとおりです。
public class QuickSort { public int partition(int[] array, int low, int high) { int pivot = array[low]; // 选择第一个元素作为Pivot while (low < high) { while (low < high && array[high] >= pivot) { high--; } array[low] = array[high]; // 将小于Pivot的元素移到左边 while (low < high && array[low] <= pivot) { low++; } array[high] = array[low]; // 将大于Pivot的元素移到右边 } array[low] = pivot; // 将Pivot放到正确的位置 return low; // 返回Pivot的位置 } }
次に、シーケンス全体を並べ替える QuickSort 関数を実装する必要があります。具体的なコードは次のとおりです。
public class QuickSort { // ... 上面的代码省略 ... public void quickSort(int[] array, int low, int high) { if (low < high) { int pivotIndex = partition(array, low, high); // 划分序列 quickSort(array, low, pivotIndex - 1); // 对左边序列进行快速排序 quickSort(array, pivotIndex + 1, high); // 对右边序列进行快速排序 } } }
最後に、QuickSort クラスを使用して整数配列を並べ替えることができます。具体的なコードは次のとおりです。
public class Main { public static void main(String[] args) { int[] array = {5, 2, 6, 3, 1, 4}; // 待排序的数组 QuickSort quickSort = new QuickSort(); quickSort.quickSort(array, 0, array.length - 1); // 对数组进行快速排序 System.out.print("排序结果:"); for (int i : array) { System.out.print(i + " "); } } }
上記は、Java 言語に基づいたクイック ソート アルゴリズムを実装するメソッドです。 Partition 関数と QuickSort 関数を実装すると、整数配列をすばやく並べ替えることができます。このアルゴリズムの時間計算量は O(nlogn) で、非常に効率的な並べ替えアルゴリズムです。
以上がJava言語で実装されたクイックソートアルゴリズムの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック









Android のポーリングは、アプリケーションがサーバーまたはデータ ソースから定期的に情報を取得および更新できるようにする重要なテクノロジです。ポーリングを実装することで、開発者はリアルタイムのデータ同期を確保し、最新のコンテンツをユーザーに提供できます。これには、サーバーまたはデータ ソースに定期的にリクエストを送信し、最新の情報を取得することが含まれます。 Android は、ポーリングを効率的に完了するためのタイマー、スレッド、バックグラウンド サービスなどの複数のメカニズムを提供します。これにより、開発者はリモート データ ソースとの同期を維持する応答性の高い動的なアプリケーションを設計できるようになります。この記事では、Android でポーリングを実装する方法について説明します。この機能の実装に関連する重要な考慮事項と手順について説明します。ポーリング 更新を定期的にチェックし、サーバーまたはソースからデータを取得するプロセスは、Android ではポーリングと呼ばれます。合格

PHP 画像フィルター効果を実装する方法には、特定のコード例が必要です はじめに: Web 開発のプロセスでは、画像フィルター効果は、画像の鮮やかさや視覚効果を高めるためによく使用されます。 PHP 言語には、さまざまな画像フィルター効果を実現するための一連の関数とメソッドが用意されています。この記事では、一般的に使用されるいくつかの画像フィルター効果とその実装方法を紹介し、具体的なコード例を示します。 1. 明るさの調整 明るさの調整は一般的な画像フィルター効果で、画像の明暗を変更できます。 PHP で imagefilte を使用する

C# を使用してクイック ソート アルゴリズムを作成する方法. クイック ソート アルゴリズムは、効率的なソート アルゴリズムです。そのアイデアは、分割統治の考え方を通じて配列をより小さなサブ問題に分割し、これらのサブ問題を再帰的に解決することです。そして最後にそれらをマージして、問題全体に対する答えを取得します。以下では、C# を使用してクイック ソート アルゴリズムを作成する方法を詳しく紹介し、関連するコード例を示します。アルゴリズムのアイデア クイックソートのアイデアは、次の 3 つのステップに要約できます。ベンチマーク要素 (通常は配列の最初の要素) を選択します。

ChatGPTJava: 正確なセマンティック検索エンジンを構築する方法 (特定のコード例が必要) はじめに: インターネットの急速な発展と情報の爆発的な増加に伴い、人々は必要な情報を取得する過程で低品質で一貫性のない検索結果に遭遇することがよくあります。まさに質問です。より正確かつ効率的な検索結果を提供するために、セマンティック検索エンジンが登場しました。この記事では、ChatGPTJava を使用して正確なセマンティック検索エンジンを構築する方法を紹介し、具体的なコード例を示します。 1.ChatGPTJを理解する

UniApp は、HBuilder に基づいて開発されたクロスプラットフォーム開発フレームワークであり、1 つのコードを複数のプラットフォームで実行できるようにします。この記事では、UniApp にカメラとビデオ通話機能を実装する方法と、対応するコード例を紹介します。 1. ユーザーのカメラ権限を取得する UniApp では、まずユーザーのカメラ権限を取得する必要があります。ページの実装されたライフサイクル関数で、uni の authorize メソッドを使用してカメラのパーミッションを呼び出します。コード例は次のとおりです。

JSON はデータ交換形式として使用でき、軽量で言語に依存しません。 JSONArray はテキスト文字列を解析してベクトルのようなオブジェクトを生成でき、java.util.List インターフェイスをサポートします。 org.json.CDL クラスを使用して JSON 配列を CSV 形式に変換できます。このクラスは、JSONArray をカンマ区切りのテキストに変換するための静的メソッド toString() を提供します。 writeStringToFile() メソッドを使用して CSV ファイルにデータを保存するには、org.apache.commons.io.FileUtils パッケージをインポートする必要があります。構文publicstaticj

C# で最短パス アルゴリズムを実装する方法には、特定のコード サンプルが必要です。最短パス アルゴリズムはグラフ理論の重要なアルゴリズムであり、グラフ内の 2 つの頂点間の最短パスを見つけるために使用されます。この記事では、C# 言語を使用して 2 つの古典的な最短経路アルゴリズム、ダイクストラ アルゴリズムとベルマン フォード アルゴリズムを実装する方法を紹介します。ダイクストラのアルゴリズムは、広く使用されている単一ソースの最短パス アルゴリズムです。その基本的な考え方は、開始頂点から開始して、徐々に他のノードに拡張し、検出されたノードを更新することです。

JavaScript は画像拡大鏡機能をどのように実装しますか? Web デザインでは、商品写真やアートワークの詳細などを表示するために、画像拡大鏡機能がよく使用されます。画像の上にマウスを置くと画像が拡大され、詳細をよりよく観察できるようになります。この記事では、JavaScript を使用してこの機能を実現する方法とコード例を紹介します。まずHTMLに拡大効果を持たせたpicture要素を用意する必要があります。たとえば、次の HTML 構造では、大きな画像を
