01 정렬 알고리즘 - 선택 정렬(Selection Sort)
선택 정렬(Selection Sort)
기존 위치에 맞는 원소를 선택하여 교환하는 방식
■ 정렬 방식
1. 아직 정렬이 안된 리스트 중에 가장 앞에 원소를 최소값으로 설정
2. 가장 앞에 원소를 제외한 나머지 원소를 차례로 비교하고 최소값을 찾아감
3. 리스트 끝까지 비교 후 찾은 최소값을 가장 앞에 원소와 교환
4. 정렬이 안된 원소들을 가지고 반복
■ 특징
- 최소값을 찾기 위한 비교횟수는 많지만 교환 횟수는 적다.
- 데이터의 개수가 적을 때 좋은 성능을 발휘한다.
- 시간복잡도 : O(n^2)
■ 소스코드 (Source Code)
public int[] Selection_Sort(int[] data,int num)
{
int min,tmp;
for(int i=0;i<num-1;i++)
{
min=i;
for(int j=i+1;j<num;j++)
{
if(data[min]>data[j])
{
min=j;
}
tmp = data[min];
data[min] = data[i];
data[i] = tmp;
}
}
return data;
}
출처 : https://lktprogrammer.tistory.com/26?category=672214
'기타 정보 > 알고리즘' 카테고리의 다른 글
05 정렬 알고리즘 - 병합 정렬 (Merge Sort) (0) | 2021.12.13 |
---|---|
04 정렬 알고리즘 - 퀵 정렬 (Quick Sort) (0) | 2021.12.13 |
03 정렬 알고리즘 - 버블 정렬 (Bubble Sort) (0) | 2021.12.13 |
02 정렬 알고리즘 - 삽입 정렬 (Insetion Sort) (0) | 2021.12.13 |
[알고리즘] 분할정복 방법 - 이진 탐색, 퀵 정렬 알고리즘 (0) | 2021.04.21 |
[알고리즘] 알고리즘의 설계와 분석 - 시간 복잡도와 점근성능 (0) | 2021.04.21 |
[알고리즘] 알고리즘의 개념과 기본 자료구조 (0) | 2021.04.21 |
[Algorithm] Minimum Spanning Tree (Prim & Kruskal) (0) | 2021.03.31 |