通用算法 -[排序算法] -選擇排序

1、算法思想

首先,找到數組中最小的那個元素,將它和數組的第一個元素交換位置(如果第一個元素就是最小元素那麼它就和自己交換)。然後,仍然在剩下的元素中找到最小的元素,將它與數組的第二個元素交換位置。如此往復,直到將整個數組排序。這種方法我們稱之爲選擇排序。

爲方便理解我還準備了動圖:
在這裏插入圖片描述

2、代碼實現

void selectSort(int* a, int length) {
        int n = length;
       for (int i = 0; i < n - 1; i++) {
            int min = i;
            for (int j = i + 1; j < n; j++) {
               if(a[min] > a[j]) min = j;
            }
            //交換
            int temp = a[i];
            a[i] = a[min];
            a[min] = temp;
        }
 }

3、算法分析

  • 時間複雜度:O(n2)
  • 空間複雜度:O(1)
  • 穩定性:非穩定性排序
  • 原地排序
發佈了155 篇原創文章 · 獲贊 16 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章