[알고리즘] 선택 정렬 (selection sort)

설명

  1. 배열의 최솟값을 교체한다.
  2. 첫번째 값과 최솟값을 변경한다.
  3. 그 다음 위치로 넘어가 배열의 끝까지 1~3번을 반복한다.

시간복잡도

O(n^2)

코드

#include <iostream>
#include <vector>
using namespace std;
void selection_sort(vector<int> &nums) {
    int min_index, temp;
    for (int i = 0; i < nums.size(); i++){
        min_index = i;
        for(int j = i+1; j < nums.size(); j++) {
            if (nums[j] < nums[min_index]) {
                min_index = j;
            }
        }
        temp = nums[min_index];
        nums[min_index] = nums[i];
        nums[i] = temp;
    }
}
int main() {
    vector<int> nums = {5,4,3,2,1};
    selection_sort(nums);

    for (int i = 0; i < nums.size(); i++) {
        cout << nums[i] << " ";
    }
}

좋은 웹페이지 즐겨찾기