c 實現選擇排序

2021-10-07 16:17:43 字數 1013 閱讀 6457

**說明

**是我親自碼的,除錯通過的,**中有演算法思想和詳細的注釋,一目了然。

專案已經上傳到我的github:

專案中還有另外得九種排序演算法的c++實現**以及其思想。

1 選擇排序:

2 插入排序:

3 氣泡排序:

4 希爾排序:

5.1 歸併排序遞迴實現:

5.2 歸併排序非遞迴實現:

6.1 快速排序遞迴實現:

6.2 快速排序非遞迴實現:

7 堆排序:

8 計數排序:

9 桶排序:

10 基數排序:

術語說明

1、穩定排序:如果 a 原本在 b 的前面,且 a == b,排序之後 a 仍然在 b 的前面,則為穩定排序。

2、非穩定排序:如果 a 原本在 b 的前面,且 a == b,排序之後 a 可能不在 b 的前面,則為非穩定排序。

3、原地排序:原地排序指在排序過程中不申請多餘的儲存空間,只利用原來儲存待排資料的儲存空間進行比較和交換的資料排序。

4、非原地排序:需要利用額外的陣列來輔助排序。

5、時間複雜度:乙個演算法執行所消耗的時間。

6、空間複雜度:執行完乙個演算法所需的記憶體大小。

效能說明

時間複雜度:o(n^2)

空間複雜度:o(1)

非穩定的原地排序

void sort::sort_select(std::vector& data)

}// 此時的min是無序序列中最小值的下標,將其放入有序序列區.

auto temp = data.at(i);

data.at(i) = data.at(min);

data.at(min) = temp;

}}

選擇排序C 實現

演算法描述 首先找到陣列中最小的元素,將它與陣列第乙個元素進行交換,接著在剩下的元素中找的最小的元素與陣列第二個元素進行交換,如此往復,直到整個陣列都排序。下面給出整型陣列的實現,其他複雜型別只需實現自定義的比較函式即可 include include using namespace std con...

C 實現選擇排序

選擇排序 selectsort 是一種簡單直觀的排序演算法。演算法原理 第一次從待排序的資料元素中選出最小 或最大 的乙個元素,存放在序列的起始位置,然後再從剩餘的未排序元素中尋找到最小 大 元素,然後放到已排序的序列的末尾。以此類推,直到全部待排序的資料元素的個數為零。選擇排序是不穩定的排序方法。...

C 實現選擇排序

選擇排序 selection sort 是一種簡單直觀的排序演算法。它的工作原理如下。首先在未排序序列中找到最小 大 元素,存放到排序序列的起始位置,然後,再從剩餘未排序元素中繼續尋找最小 大 元素,然後放到已排序序列的末尾。以此類推,直到所有元素均排序完畢。選擇排序的主要優點與資料移動有關。如果某...