Algorithm

[이코테] Chapter 06. 정렬 학습 정리

기준에 따라 데이터를 정렬

💡 KEY POINT
정렬: 데이터를 특정한 기준에 따라서 순서대로 나열하는 것
선택 정렬: O(N^2), 매번 가장 작은 것을 `선택`, 가장 작은 데이터를 선택해 맨 앞에 있는 데이터와 바꾸고, 그 다음 작은 데이터를 선택해 앞에서 두 번재 데이터와 바꾸는 과정을 반복
삽입 정렬: O(N^2), 특정한 데이터를 적절한 위치에 `삽입`, 데이터를 하나씩 확인하여, 각 데이터를 적절한 위치에 삽입하는 방식, 데이터가 거의 정렬되어 있을 때 효율적
퀵 정렬: 평균적으로 O(NlogN), 최악의 경우 O(N^2), 기준 데이터를 설정하고 그 기준보다 큰 데이터와 작은 데이터의 위치를 바꾸는 방식
계수 정렬: O(N + K), 모든 데이터가 양의 정수인 상황에서 데이터의 범위가 한정되어 있는 경우에 효율적, 최대값보다 1 큰 배열을 만들고 Index 번호를 활용하는 방식

 

[실전 문제] 위에서 아래로

💡 KEY POINT
파이썬의 기본 정렬 라이브러리를 사용하면 되는 문제이다.

 

[실전 문제] 성적이 낮은 순서로 학생 출력하기

💡 KEY POINT
파이썬의 기본 정렬 라이브러리를 사용하되, 튜플을 정렬할 때 하나의 원소를 기준삼아 정렬하는 key 매개변수를 사용하면 풀 수 있다.

 

[실전 문제] 두 배열의 원소 교체

💡 KEY POINT
배열 A를 오름차순, 배열 B를 내림차순으로 정렬한 뒤에 A의 원소가 B의 원소보다 작을 경우에만 교체를 수행한다.