python 정렬 알고리즘(선택/삽입/거품/합병)
반응형
#정렬 알고리즘
- selection sort(선택 정렬)
- insertion sort(삽입 정렬)
- bubble sort(거품 정렬)
- merge sort(합병 정렬)
사진 및 내용 출처 : 위키백과
* 문제가 될 시 바로 내리겠습니다.
#선택 정렬
- 제자리 정렬 알고리즘
① 주어진 리스트 중에 최솟값을 찾는다.
②그 값을 맨 앞에 위치한 값과 교체한다(패스(pass)).
③맨 처음 위치를 뺀 나머지 리스트를 같은 방법으로 교체한다.
선택 정렬 애니메이션
def selectionSort(x): length = len(x) for i in range(length-1): indexMin = i for j in range(i+1, length): if x[indexMin] > x[j]: indexMin = j x[i], x[indexMin] = x[indexMin], x[i] return x
#삽입정렬
- 자료 배열의 모든 요소를 앞에서부터 차례대로 이미 정렬된 배열 부분과 비교하여, 자신의 위치를 찾아 삽입함으로써 정렬을 완성하는 알고리즘
- 배열이 길어질수록 효율이 떨어지지만, 구현이 간단하다는 장점이 있다.
- 선택 정렬이나 거품 정렬과 같은 같은 O(n2) 알고리즘에 비교하여 빠르며, 안정 정렬이고 in-place 알고리즘이다.
#거품정렬
- 두 인접한 원소를 검사하여 정렬하는 방법
- 시간 복잡도가 로 상당히 느리지만, 코드가 단순하기 때문에 자주 사용된다.
#합병정렬
- 재귀의 아주 좋은 사례
- 분할 정복 기법
- 제자리 정렬이 가능
- 리스트를 반으로 쪼개면서 최소단위로 만든 후 정렬하면서 합병
반응형
'Programing > python' 카테고리의 다른 글
python 파일 입출력 (0) | 2017.03.21 |
---|---|
linux에서 python 환경 구성하기 (0) | 2017.03.20 |
python 재귀함수 (0) | 2017.02.07 |
python 모듈/패키지 (0) | 2017.01.19 |
python 논리식/if/while (0) | 2017.01.17 |
TAGS.