본문 바로가기

알고리즘(C언어)45

(5)실습5주차_합병정렬과 퀵정렬 [문제1]_합병정렬(오름차순)##코드 :1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192#include stdio.h>#include stdlib.h>#pragma warning (disable : 4996) void Merge(int* A, int start, int mid , int end) {    int L = start;    int R = mid + 1;     int* B = (int*)malloc(sizeof(int) * (end.. 2024. 9. 5.
(4)실습4주차_힙과 힙정렬(2)_1_문제1번,문제2번 ##노트 정리 PDF ##문제 풀기 전 알아야 할 개념(요약) :1_ 상향식 힙 생성 :과정 :Heap에 한꺼번에 여러 원소를 저장한다.맨 마지막 노드의 부모노드부터 역순으로 루트노드까지 DownHeap과정을 거친다.2_ 힙트리 + 제자리힙정렬 (중복된 키들이 들어간 힙트리도 적용된다.):- 언제 쓰이는 지의 상황 : 상향식 힙트리 생성 과정을 거친 힙트리일 때,- 과정 :루트노드와 마지막 노드 Swap맨마지막 노드를 삭제루트노드를 대상으로 DownHeap과정을 거친다.1~3번 과정을 Heap의 Size가 1이 될때 까지 반복- 과정을 거친 후 결과 :최대 힙 트리 → 오름차순으로 정렬된 Heap 배열최소 힙 트리 → 내림차순으로 정렬된 Heap 배열##코드 :123456789101112131415161.. 2024. 9. 5.
(4)실습3주차_힙과 힙정렬(1)_2_문제2번 ※문제에 대한 PDF는 아래의 링크에 있습니다.https://kojammin.tistory.com/87 (3)실습3주차_힙과 힙정렬(1)_1_문제1번##기억해야할 내용 :UpHeap()메소드- 이론 :  맨 마지막 노드에 값을 삽입 후, 최대 힙 규칙에 맞춰, 적절한 위치로 부모노드로 올리는 메소드- 매개변수 : Heap 구조체 포인터, 해당 조정할 노드의 인kojammin.tistory.com #이 문제를 풀기 위해 알아야 할 개념 :1_ 상향식 힙 생성 :1_1) 정의 : 우선 키의 개수와 키들을 한꺼번에 입력한 뒤, 리프 노드의 이전 레벨의 모든 노드를 DownHeap()과정을 거쳐 힙트리를 구성하는 방식이다.1_2) 자세한 과정 :ex_ 키의 개수 : 6 , 키의 구성 : 24 17 33 50 6.. 2024. 9. 2.
(3)실습3주차_힙과 힙정렬(1)_1_문제1번 ##기억해야할 내용 :UpHeap()메소드- 이론 :  맨 마지막 노드에 값을 삽입 후, 최대 힙 규칙에 맞춰, 적절한 위치로 부모노드로 올리는 메소드- 매개변수 : Heap 구조체 포인터, 해당 조정할 노드의 인덱스(i)- 코드상 순서 :1_ Parent(i)의 노드와 i의 노드 SWAP2_ i노드를 Parent(i)노드로 업데이트3_ while로 i가 루트 도달 전 && 자식노드의 data > 부모노드의 data라면, 반복  DownHeap()메소드- 이론 :  해당 노드 값에서, 최대 힙 규칙에 맞춰, 적절한 위치로 자식노드로 내리는 메소드- 매개변수 : Heap 구조체 포인터, 해당 조정할 노드의 인덱스(i)- 코드상 순서 :1_ △구조로, 부모노드를 (Best==i), 왼쪽자식(L), 오른쪽 자.. 2024. 9. 1.