ホームページ  >  記事  >  Java  >  Java での選択ソートのコード例

Java での選択ソートのコード例

黄舟
黄舟オリジナル
2017-08-11 09:40:342517ブラウズ

この記事では主に Java の単純な選択ソートの例を詳しく紹介します。興味のある方は参考にしてください

1. 基本概念

各パスでソートするレコードから最小のレコードを選択します。キーが選択され、すべての並べ替えが完了するまで、並べ替えられたレコード シーケンスの最後に配置されます。

2. 実装アイデア

並べ替えるシーケンスから最小のキーワードを持つ要素を見つけます。
最小の要素が並べ替えられるシーケンスの最初の要素でない場合は、それを最初の要素と交換します。残り N - 1 個の要素の中から、最も小さいキーワードを持つ要素を見つけ、ソートが完了するまで手順 (1) と (2) を繰り返します。

3. コードの実装


public class SelectionSort {

 public static void selectionSort(int[] list){
  //需要遍历获得最小值的次数
  if (1>=list.length)return;
  for (int i=0;i<list.length-1;i++){
   int temp=0;
   int index=i;  //选择当前值为最小值索引
   for (int j=i+1;j<list.length;j++){
    if (list[index]>list[j]){
     index=j; //修改最小值索引
    }
   }
   
   temp=list[index];
   list[index]=list[i];
   list[i]=temp;
  }
 }
 public static void main(String[] args){
  int[] list={4,3,6,5,7,8,2,10,2,9};
  selectionSort(list);
  for (int num:list){
   System.out.print(num+" ");
  }
 }
}

4. 時間計算量

単純な選択ソートの比較の数は、シーケンスの最初のソートとは関係がありません。 ソート対象のシーケンスに N 個の要素があると仮定すると、比較回数は常に N (N - 1) / 2 になります。


動きの数は、シーケンスの最初の並べ替えに関連します。シーケンスが正の順序である場合、移動数は最小であり、0 です。


シーケンスが逆の順序である場合、移動数は最大で、3N (N - 1) / 2 です。


したがって、上記に基づいて、単純なソートの時間計算量は O(N2) です。

以上がJava での選択ソートのコード例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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