C++ 實現選擇排序算法

C++ 實現選擇排序算法

思路

選擇排序

  • 選擇排序(升序) 就是 從一組數字 選出 一個最小的元素 放在 第一個位置
  • 之後在 剩下 的 元素中, 在選擇一個 最小 的 位置 放入 第二位置
  • 最後只剩下 一個元素, 整個排序過程完成.
#include <iostream>

using namespace std;


void selectSort(int *arr, int len) {

    for (int i = 0; i < len; i++) {
        // 尋找[i, n)區間裏的最小值
        int minIndex = i;

        for (int j = i + 1; j < len; j++) {
            if (arr[j] < arr[minIndex]) {
                minIndex = j;
            }

        }

        if (minIndex != i) {
            swap(arr[i], arr[minIndex]);
        }
    }

}





void printArray(int *arr, int len) {

    for (int i = 0; i < len; i++) {
        cout << arr[i] << " ";
    }
    cout << endl;

}



int main() {

    int array[] = {1, 34, 6, 21, 98, 31, 7, 4, 36, 47, 67, 39, 45, 57, 37, 25, 2};
    int len = sizeof(array) / sizeof(*array);

    printArray(array, len);
    selectSort(array, len);
    printArray(array, len);

    return 0;

}

結果如下:

img1

分享快樂,留住感動. '2020-01-05 12:01:18' --frank
發佈了112 篇原創文章 · 獲贊 65 · 訪問量 15萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章