정렬2 6. 정렬 - 3(힙 정렬) 힙 정렬은 힙이라는 특수한 자료구조 그 중에서도 이진완전트리를 사용한다. 힙에는 2가지 종류가 있는데 하나는 최대힙과 최소힙이다. 이는 값의 방향성의 차이지 큰 차이는 없다. 최대힙 : 부모 노드가 자식 노드보다 큰 값을 가지는 힙 최소힙 : 부모 노드가 자식 노드보다 작은 값을 가지는 힙 1. 힙 만들기 배열을 노드로 만드는것은 위 사진과 같다. 가장 위의 노드를 1로 뒀을 때 자식 노드는 좌측은 i * 2의 인덱스 값을 가지고 우측은 i * 2 + 1라는 인덱스 값을 가진다. 그리고 그 노드의 부모 노드는 i / 2의 인덱스 값을 가진다. def parent(alist, node): return alist[index // 2] def left(alist, node): return alist[index.. 2021. 10. 20. 4. 정렬 - 1(선택정렬, 버블정렬, 삽입정렬) 2021.09.23 - [알고리즘] - 0. 알고리즘 공부 시작 2021.09.24 - [알고리즘] - 1. 알고리즘(Algorithm)이란? 2021.09.26 - [알고리즘] - 2. 알고리즘 점근적 표기 및 시간 복잡도 2021.09.26 - [알고리즘] - 3. 점근적 표기법(o-표기법, ω-표기법) 2021.10.19 - [알고리즘] - 4. 정렬 - 1(선택정렬, 버블정렬, 삽입정렬) 2021.10.20 - [알고리즘] - 5. 정렬 - 2(합병 정렬, 퀵 정렬) 사실 수업 초기에는 욕이 많이 나왔다. 내가 상상하던 알고리즘가 다르게 이상한 계산식만 나왔기 때문이다. 중간고사 공부하는 지금도 사실 욕이 나온다. 드디어 내가 상상하던 부분에 도입됬다. 바로 정렬이다. 정렬 알고리즘이란? 원소들을.. 2021. 10. 19. 이전 1 다음 반응형