首頁  >  文章  >  Java  >  Java中選擇排序的程式碼實例

Java中選擇排序的程式碼實例

黄舟
黄舟原創
2017-08-11 09:40:342473瀏覽

這篇文章主要為大家詳細介紹了java簡單選擇排序實例,具有一定的參考價值,有興趣的小夥伴們可以參考一下

##一、基本概念

#      每項從待排序的記錄中選出關鍵字最小的記錄,順序放在已排序的記錄序列末尾,直到全部排序結束為止。

二、實作思路

從待排序序列中,找到關鍵字最小的元素;

如果最小元素不是待排序序列的第一個元素,將其和第一個元素互換;
從剩餘的N - 1 個元素中,找出關鍵字最小的元素,重複(1)、(2)步,直到排序結束。

三、程式碼實作


#

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+" ");
  }
 }
}

四、時間複雜度

簡單選擇排序的比較次數與序列的初始排序無關。 假設待排序的序列有 N 個元素,則比較次數總是N (N - 1) / 2。


而移動次數與序列的初始排序有關。當序列正序時,移動次數最少,為 0.


當序列反序時,移動次數最多,為3N (N - 1) /  2。


所以,綜合以上,簡單排序的時間複雜度為 O(N2)。

以上是Java中選擇排序的程式碼實例的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn