1. 程式人生 > 其它 >經典排序演算法(2)——選擇排序(selection sort)

經典排序演算法(2)——選擇排序(selection sort)

技術標籤:演算法學習排序演算法選擇排序

1. 演算法思想

選擇排序(selection sort)是一種比較類排序演算法。工作原理為:在未排序佇列中選擇最小(最大)值,放到序列的起始位置,然後,再從剩餘未排序佇列中選取最小(最大)值,重複此步驟,直到序列有序。

2. 演算法描述

  • 在序列中找到最小(大)值,將其與第一個元素進行交換;
  • 從剩下未排序的元素中選擇最小(大)值,並將其放置在前面;
  • 重複此步驟,直到序列有序;

3. 動圖演示

img

4. 程式碼實現

public static int[] selectionSort(int array[]) {
        for (int i = 0
; i < array.length - 1 -1; i++) { int index = i; int min = array[i]; for (int j = i+1; j < array.length - 1; j++) { if(array[j] < min) { min = array[j]; index = j; } } int
temp = array[i]; array[i] = array[index]; array[index] = temp; } return array; }

5. 時間複雜度

選擇排序的時間複雜度為:O(n^2)。