ホームページ >Java >&#&チュートリアル >Javaデータ構造ソートアルゴリズム(3) 単純選択ソート

Javaデータ構造ソートアルゴリズム(3) 単純選択ソート

零下一度
零下一度オリジナル
2017-05-31 09:31:531511ブラウズ

この記事では、主に Java データ構造とアルゴリズム選択ソートの単純さを紹介し、サンプルの形で選択ソートの原理、実装方法、および関連する操作テクニックを分析します。 Java データと例 単純な選択ソートの構造とアルゴリズム。参考のために皆さんと共有してください。詳細は次のとおりです。

前の記事で、交換クラスのソート アルゴリズムについて説明しました。このセクションでは、選択クラスのソート アルゴリズムについて説明します。まず、選択ソートのアルゴリズムのアイデアを見てみましょう。 +1 (i=1,2,3,...,n-1) レコードは、シーケンス内の i 番目のレコードとして記録されます。

単純な選択ソート: ソートされたシーケンス内のレコードの数が n であると仮定します。 i は 1,2,…,n-1 をとり、n-i+1 個のすべてのレコード (Ri、Ri+1、…、Rn) からソート コードが最も小さいレコードを見つけて、それを i 番目のレコードと交換します。 n-1回実行すると、レコード列のソートが完了します。

アルゴリズムの実装コードは次のとおりです:

package exp_sort;
public class SimpleSelectSort {
  static int i;
  static int temp;
  public static void selectSort(int array[]) {
    for (i = 0; i < array.length; i++) {
      int k = i;  //记录当前位置
      for (int j = i + 1; j < array.length; j++) {
        if (array[j] < array[k]) {   //找出最小的数,并用k指向最小数的位置
          k = j;
        }
      }
            //交换最小数array[k]与第i位上的数
      if (k != i) {
        temp = array[i];
        array[i] = array[k];
        array[k] = temp;
      }
    }
  }
  public static void main(String[] args) {
    // TODO Auto-generated method stub
    int array[] = { 38, 62, 35, 77, 55, 14, 35, 98 };
    selectSort(array);
    for (int i = 0; i < array.length; i++) {
      System.out.print(array[i] + " ");
    }
    System.out.println("\n");
  }
}

アルゴリズム分析:

この並べ替えプロセスでは、移動する必要があるレコードの数は比較的少ないです。最良の場合、つまり、ソートされるレコードの初期状態がすでに正の順序になっている場合、最悪の場合、つまり、ソートされるレコードの初期状態が正の順序になっている場合、レコードを移動する必要はありません。逆の順序では、必要な最大手数は 3 ( n-1) です。ソート処理の際に必要な比較回数は、初期状態でのソート対象のレコード列の並びとは無関係である。 i=1 の場合、n-1 回の比較が必要です。i=n の場合、必要な比較の合計数は n(n-1)/2、つまり比較演算の時間計算量は O( n^ 2)、移動操作の時間計算量は O(n) です。このソートは

不安定なソート

です。 【関連おすすめ】1.

javaデータ構造ソートアルゴリズム(1) ツリー選択ソート

2. javaデータ構造ソートアルゴリズム(2) マージソート

3.

選択ソートの詳細説明Java (選択ソート_java) サンプルチュートリアル

4. Java データ構造ソートアルゴリズム (4) 選択ソート

以上がJavaデータ構造ソートアルゴリズム(3) 単純選択ソートの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。