選擇排序的java實現

簡介

選擇排序是一種思想很簡單的排序方法,其原理就是在第n輪選擇第n小的元素與當前元素交換,這樣第n小的元素就在數組的第n個位置了。
比如在第一輪中,把第0個元素設置為最小的元素,并把它跟后面的每一個元素比較,得到最小的元素,將最小的元素和第一個元素進行交換,以此類推

復雜度

時間復雜度

選擇排序的時間復雜度為O(n2),因為不管情況怎樣都是比較(n-1)+(n-2)+…+3+2+1=n(n-1)/2次

空間復雜度

選擇排序不需要分配額外的空間,故它的空間復雜度為O(1)

穩定性

選擇排序是一種不穩定的算法,比如5 8 5 3 2 9,經過第一輪交換之后兩個5的位置順序就不一樣了,穩定性被破壞,所以它不是一種穩定的排序算法。

java實現

  public void choiceSort(int[]a)
{
     for(int i=0;i<a.length-1;i++)
   {
         int min=i;
         for(int j=i+1;j<a.length;j++)
        {
             if(a[j]<a[min])
          {
             min=j;
          }
        }
        if(a[min]!=a[i])
      {
         int temp=a[min];
         a[min]=a[i];
         a[i]=temp;
      }
   }
}

That's all.

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 排序的基本概念 在計算機程序開發過程中,經常需要一組數據元素(或記錄)按某個關鍵字進行排序,排序完成的序列可用于快...
    Jack921閱讀 1,459評論 1 4
  • 概述排序有內部排序和外部排序,內部排序是數據記錄在內存中進行排序,而外部排序是因排序的數據很大,一次不能容納全部的...
    Luc_閱讀 2,299評論 0 35
  • 概述 排序有內部排序和外部排序,內部排序是數據記錄在內存中進行排序,而外部排序是因排序的數據很大,一次不能容納全部...
    蟻前閱讀 5,220評論 0 52
  • 概述:排序有內部排序和外部排序,內部排序是數據記錄在內存中進行排序,而外部排序是因排序的數據很大,一次不能容納全部...
    每天刷兩次牙閱讀 3,743評論 0 15
  • 1.插入排序—直接插入排序(Straight Insertion Sort) 基本思想: 將一個記錄插入到已排序好...
    依依玖玥閱讀 1,282評論 0 2