반응형
[C# 프로그래밍 : 02. 알고리즘 - 02.정렬 알고리즘 - 선택정렬]


1. 선택정렬(Selection sort)이란?
- 정렬되지 않은 데이터들에 대해 가장 작은 데이터를 찾아 가장 앞의 데이터와 교환해나가는 방식
- 주어진 숫자n개의 리스트에서 가장 작은 최소값을 찾는다
- 최소값을 맨 앞의 값과 교체한다(Swap)
- 교체한 맨 앞의 데이터는 정렬된 것으로 간주하고 다음 인덱스부터 1, 2 행위를 끝까지 반복한다.
2. 선택정렬의 특징
- 구현은 단순하지만 비교적 성능이 좋지 않음
- 두개의 for 루프의 실행횟수
3. 구현
int[] data = {20,15,1,5,10};
for(int i = 0; i<data.length; i++){
int min = i;
for(int j = i+1; j<data.length; j++){
if(data[min] >data[j])
min = j;
}
Swap(ref data[i], ref data[min]);
}
static void Swap(ref int a, ref int b)
{
int temp = a;
a = b;
b = temp;
}
4. Big-O표기법 :
- 알고리즘의 시간 복잡도 표현할 때 쓰임
- 데이터가 다섯 개 정도는 괜찮지만 백만 개 정도 되면 중요해짐..
- 알고리즘 내 연산의 횟수
- 알고리즘 최악의 실행시간
- 상수는 버림
- 종류
- O(1) : 입력값에 상관없이 상수 1만큼 실행되었을때
- O(log n) : (ex. 이진탐색)
- O(n) : 입력한 n값만큼 반복문 실행. 선형 시간 알고리즘.
- O(n log n) : 병합 정렬등 효율 좋은 알고리즘이 이에 해당됨
- O(n²) : 반복문이 두개 중첩되어 실행되면 n*n번 실행됨 (ex. 버블 정렬)
빅오 표기법 잘 이해가 안 가는데 그냥 휙 넘어가셨다.
그래서 다른 블로그를 참고했지만 여전히 좀 약간 이해가 안 가는 부분이 있다.
아무래도 수학이 약해서 그런 것 같다.
다행히 쉽게 설명한 블로그 발견!
https://babbab2.tistory.com/88
https://codermun-log.tistory.com/235
패스트캠퍼스 [직장인 실무교육]
프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.
fastcampus.co.kr
<본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.>
#패스트캠퍼스 #패캠챌린지 #직장인인강 #직장인자기계발 #패스트캠퍼스후기
#C#과유니티로배우는게임개발올인원패키지Online.
반응형
'코딩 공부 > 패스트캠퍼스 게임 개발 올인원' 카테고리의 다른 글
패스트캠퍼스 챌린지 최종 후기 (0) | 2022.03.22 |
---|---|
패스트캠퍼스 챌린지 50일차 (0) | 2022.03.14 |
패스트캠퍼스 챌린지 48일차 (0) | 2022.03.12 |
패스트캠퍼스 챌린지 47일차 (0) | 2022.03.11 |
패스트캠퍼스 챌린지 46일차 (0) | 2022.03.10 |