排序演算法(三):簡單選擇排序演算法-Java實現

來源:互聯網
上載者:User

標籤:null   oid   最小值   length   swap   class   enter   code   ret   

排序演算法(三):簡單選擇排序演算法-Java實現

簡單選擇演算法是除堆排序的另外一種選擇排序演算法,其也是一種不穩定的排序演算法,平均時間複雜度為O(N2),空間時間複雜度為O(1)

簡單選擇演算法相對比較簡單,並且易於理解,具體排序演算法思路如下:

  1. 選擇數組中最小的一個元素與array[i]交換,始終是將數組分為aray[0]...array[i] 有序和array[i+1]...array[array.length-1]無序兩部分
  2. 將無序中最小值放到array[i+1]處

實現代碼如下:

 1 public class SelectSort { 2  3     public static void main(String[] args) { 4         int[] array = new int[]{5, 3, 6, 2, 1, 9, 4, 8, 7}; 5         SelectSort selectSort = new SelectSort(); 6         selectSort.selectSort(array); 7         for (int i = 0; i < array.length; i++) { 8             System.out.print(array[i] + " "); 9         }10     }11 12     public void selectSort(int[] array) {13         if (array == null || array.length == 0) return;14 15         for (int i = 0; i < array.length; i++) {16             // 預設最小為i17             int min = i;18             // 此迴圈主要是選擇出來最小的元素19             for (int j = i + 1; j < array.length; j++) {20                 if (array[min] > array[j]) {21                     min = j;22                 }23             }24 25             // 將兩個元素交換26             if (min != i) {27                 swap(array, i, min);28             }29 30         }31     }32 33     private void swap(int[] array, int i, int j) {34         //  有可能溢出35         array[i] = array[i] + array[j];36         array[j] = array[i] - array[j];37         array[i] = array[i] - array[j];38     }39 }

 

排序演算法(三):簡單選擇排序演算法-Java實現

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.