ホームページ バックエンド開発 C#.Net チュートリアル C言語でクイックソートを使ってソートする方法

C言語でクイックソートを使ってソートする方法

Aug 08, 2020 am 10:13 AM
クイックソート

クイックソート法の配置方法: まず、ソートするたびに基準点を設定し、基準点以下のすべての数値を基準点の左側に配置し、次にそれ以上のすべての数値を配置します。参照点以上 参照点の右側; 最後に、すべての交換は、毎回隣接する番号のみを交換できるバブルソートのようなものではなくなり、交換距離ははるかに大きくなります。

C言語でクイックソートを使ってソートする方法

クイックソート方法:

アルゴリズムのアイデア:

( 1) 参照要素 (キーと呼ばれる) key=arr[left] として並べ替えるレコード シーケンスからレコード (通常は最初のレコード) を選択し、2 つの変数を設定します。 left はシーケンスの左端の部分を指します。 right はデータの右端の部分を指します。

C言語でクイックソートを使ってソートする方法

(2) key は最初に arr[right] と比較されます。arr[right]key の場合は、right--、right-- を比較し、arr[right] と key until arr[right]

C言語でクイックソートを使ってソートする方法

(3) 右側にarr[right]key の場合は、arr[right]=arr[left]、arr[left]

C言語でクイックソートを使ってソートする方法

(4) 次に右に移動して上記の手順を繰り返します

C言語でクイックソートを使ってソートする方法

(5) 最後に {23 58 13 を取得します10 57 62} 65 {106 78 95 85} を入力し、左側の部分配列と右側の部分配列に対して同じ演算を実行します。最後に、順序付けされたシーケンスが取得されます。

C言語でクイックソートを使ってソートする方法

アルゴリズムの実装:

public class QuickSort {
 
   public static void quickSort(int [] arr,int left,int right) {
      int pivot=0;
      if(left<right) {
         pivot=partition(arr,left,right);
         quickSort(arr,left,pivot-1);
         quickSort(arr,pivot+1,right);
      }
   }
 
   private static int partition(int[] arr,int left,int right) {
      int key=arr[left];
      while(left<right) {
         while(left<right && arr[right]>=key) {
            right--;
         }
         arr[left]=arr[right];
         while(left<right && arr[left]<=key) {
            left++;
         }
         arr[right]=arr[left];
      }
      arr[left]=key;
      return left;
   }
  
   public static void main(String[] args) {
      int arr[]= {65,58,95,10,57,62,13,106,78,23,85};
      System.out.println("排序前:"+Arrays.toString(arr));
      quickSort(arr,0,arr.length-1);
      System.out.println("排序后:"+Arrays.toString(arr));
   }
}
ログイン後にコピー
排序前:[65, 58, 95, 10, 57, 62, 13, 106, 78, 23, 85]
排序后:[10, 13, 23, 57, 58, 62, 65, 78, 85, 95, 106]
ログイン後にコピー

関連学習の推奨事項: C ビデオ チュートリアル

以上がC言語でクイックソートを使ってソートする方法の詳細内容です。詳細については、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)

Pythonを使用してクイックソートを実装する方法 Pythonを使用してクイックソートを実装する方法 Dec 18, 2023 pm 03:37 PM

Python でクイック ソートを実装する方法: 1. Quick_sort という関数を定義し、再帰的メソッドを使用してクイック ソートを実装します; 2. 配列の長さを確認し、長さが 1 以下の場合は配列を直接返します。それ以外の場合は、配列を選択します。最初の要素はピボット要素 (ピボット) として使用され、配列はピボット要素より小さい 2 つのサブ配列とピボット要素より大きい 2 つのサブ配列に分割されます。3. 2 つのサブ配列を接続します。およびピボット要素を使用して、ソートされた配列を形成します。

Javaで実装したクイックソートアルゴリズムとその効率評価 Javaで実装したクイックソートアルゴリズムとその効率評価 Feb 18, 2024 pm 03:38 PM

クイック ソートの Java 実装とそのパフォーマンス分析 クイック ソート (QuickSort) は、非常に一般的に使用される効率的なソート アルゴリズムであり、分割統治 (DivideandConquer) の考え方です。このアルゴリズムは、配列を 2 つのサブ配列に分割し、次に 2 つのサブ配列をそれぞれソートし、最後に配列全体を順序付けされたシーケンスに変換します。クイックソートは、大規模なデータを処理する場合に優れたパフォーマンスを発揮します。クイック ソートは再帰的に実装されます。基本的な考え方は次のとおりです。

Java クイックソートのヒントと注意事項 Java クイックソートのヒントと注意事項 Feb 25, 2024 pm 10:24 PM

Java クイック ソートの重要なスキルと注意事項をマスターします。クイック ソート (QuickSort) は、一般的に使用されるソート アルゴリズムです。その中心的なアイデアは、ベンチマーク要素を選択することによってソートされるシーケンスを 2 つの独立した部分に分割し、すべての要素を 1 つにまとめることです。部分が等しい。が基本要素より小さく、他の部分のすべての要素が基本要素より大きい場合、2 つの部分が再帰的に並べ替えられ、最終的に順序付けされたシーケンスが取得されます。クイックソートの時間計算量は平均的に O(nlogn) ですが、最悪の場合は O(nlogn) に縮退します。

最適化と実装の原則: Java でのクイックソート 最適化と実装の原則: Java でのクイックソート Feb 20, 2024 pm 01:24 PM

Java クイック ソート機能の実装原理と最適化. クイック ソートは効率的なソート アルゴリズムです. その実装アイデアは、分割統治法によって大きな問題を複数の小さな問題に分割し、サブ問題を再帰的に解決して最終的に全体的な解決策です。クイックソートでは、ベンチマーク要素を選択し、配列を 2 つの部分に分割する必要があります。1 つの部分はベンチマーク要素より小さく、もう 1 つの部分はベンチマーク要素より大きくなります。次に、サブ問題ごとに要素が 1 つだけになるまで、2 つの部分が再度すばやく並べ替えられます。最後に、すべての部分問題の解を組み合わせて配列を取得します。

Javaで関数を素早くソートする方法 Javaで関数を素早くソートする方法 Jan 18, 2024 pm 05:26 PM

クイック ソート方法: 1. Java サンプル ファイルを作成する; 2. QuickSort メソッドを使用してクイック ソート アルゴリズムを実装する; 3. 配列内の要素をピボット (ピボット) として選択し、配列を 2 つのサブ配列に分割します。ピボットを含む要素が小さい方が小さい要素であり、もう一方の要素にはピボット要素よりも大きい要素が含まれており、その後、クイック ソート アルゴリズムが 2 つの部分配列に再帰的に適用されます。 main メソッドを実行し、結果を出力します。

Javaを使用してクイックソートアルゴリズムを実装する方法 Javaを使用してクイックソートアルゴリズムを実装する方法 Sep 19, 2023 am 11:28 AM

Java でクイック ソート アルゴリズムを実装する方法 クイック ソート (QuickSort) は、一般的に使用される効率的なソート アルゴリズムです。その基本的な考え方は、分割統治戦略 (Divide and Conquer) を使用することです。一度に 1 つの要素をベンチマーク値として選択することにより、並べ替えられる配列が 2 つの部分に分割され、1 つはベンチマーク値より小さく、もう 1 つはベンチマーク値よりも小さくなります。他の部分がベンチマーク値より大きい場合、2 つの部分は別々に処理され、再帰的ソートが行われ、最終的に配列全体のソートが実現されます。以下では、Java言語を使用して高速ソートを実現する方法を詳しく紹介します。

PHP の配列関数を使用したクイックソート PHP の配列関数を使用したクイックソート Jun 16, 2023 am 08:54 AM

PHP は非常に人気のあるプログラミング言語であり、Web 開発に広く使用されています。 PHP では、配列は非常に一般的なデータ型であり、非常に強力なデータ構造です。このため、PHP には、開発者が配列を処理および操作するのに役立つ多くの配列関数が用意されています。これには、配列を迅速に並べ替えるのに役立つクイック ソート関数が含まれています。クイック ソートは一般的なソート アルゴリズムです。その基本的な考え方は、比較と交換を通じて配列を 2 つのサブ配列に分割し、一方が他方より小さいことを再帰的に行うことです。

Pythonでクイックソートアルゴリズムを実装するにはどうすればよいですか? Pythonでクイックソートアルゴリズムを実装するにはどうすればよいですか? Sep 19, 2023 am 09:55 AM

Pythonでクイックソートアルゴリズムを実装するにはどうすればよいですか?クイック ソートは、平均 O(nlogn) の時間計算量で n 個の要素のリストをソートできる、一般的で効率的なソート アルゴリズムです。この記事では、Python を使用してクイック ソート アルゴリズムのコード例を作成する方法を紹介します。クイック ソートの基本的な考え方は、要素 (通常はリストの最初の要素) をベンチマークとして選択し、リストを 2 つのサブシーケンスに分割して、左側のサブシーケンスのすべての要素がベンチマークよりも小さくなり、すべての要素が右側のサブシーケンスの はベンチマークよりも小さいです。

See all articles