● 선택정렬(Selection Sort) - 앞에서부터 정렬
- n개의 숫자가 있을때 n-1회전이 진행
- i가 진행되면서 가장 작은 수를 기억
- i -> n까지 진행되면서 기억해놓은 가장 작은수를 가장 왼쪽의 수와 교환
- 가장 작은수가 가장 왼쪽으로 이동하게됨
- O(n^2)
● 버블정렬(Bubble Sort) - 뒤에서부터 정렬
- n개의 숫자가 있을때 n-1회전이 진행
- i -> n-1까지 진행되면서 i와 i+1을 비교해서 i>i+1이면 교환하고 i<i+1이면 교환X (오름차순 정렬시)
- 가장 큰수가 가장 오른쪽으로 이동하게됨
- O(n^2)
● 삽입정렬(Insertion Sort) - 앞에서부터 정렬
- n개의 숫자가 있을때 n번 진행
- 앞에서부터 하나씩 자기 위치를 찾아 삽입하면서 정렬해 나감
-> 지나온 부분 : 정렬된 부분/ 지나지 않은부분 : 아직 정렬되지 않은 부분
- 갯수가 많을 수록 효율이 떨어짐 (많은 이동을 이르킴)
- O(n^2)
● 병합정렬(Merge Sort)
- 중간을 기준으로 왼쪽 절반 정렬, 오른쪽 절반 정렬 후 병합함
- 원소가 한개가 될때까지 계속해서 반으로 나눈 후 다시 합쳐가면서 정렬함
- O(n log n)
'CS이론 > 알고리즘' 카테고리의 다른 글
시간복잡도 (0) | 2020.07.05 |
---|---|
검색(Search) (0) | 2020.06.28 |