[Algorithm] Sorting / Selection Sort
Selection Sort(선택 정렬)
- 가장 작은 것을 선택하여 제일 앞으로 보내는 알고리즘
- 해당 순서에 원소를 넣을 위치는 이미 정해져 있고, 어떤 원소를 넣을지 선택하는 알고리즘
- 첫 번째 순서에는 첫 번째 위치에 가장 최솟값을 넣는다.
- 두 번째 순서에는 두 번째 위치에 남은 값 중에서 최솟값을 넣는다.
...
선택정렬의 코드는 다음과 같습니다.
#include <iostream>
using namespace std;
int main(){
int a[10] = {1, 10, 5, 8, 7, 6, 4, 3, 2, 9};
int n = 10;
for(int i=0; i<n-1; i++){
int idx = i; // idx: 매 사이클을 돌 때의 가장 작은 배열의 인덱스값을 기록
for(int j=i+1; j<n; j++){
if(a[j]<a[idx]) idx = j;
}
swap(a[i], a[idx]);
}
for(int i=0; i<n; i++) cout<<a[i]<<" ";
return 0;
}
선택 정렬의 시간복잡도
- 선택 정렬의 시간 복잡도는 최선의 경우와 최악의 경우 모두 O(n^2)입니다.
Author And Source
이 문제에 관하여([Algorithm] Sorting / Selection Sort), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@ssssujini99/Algorithm-Sorting-Selection-Sort저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)