[자료 구조][C언어] 합병 정렬(merge sort)
2018.12.10
합병 정렬(merge sort) 2개의 정렬된 리스트를 하나의 정렬된 리스트로 합병하여 정렬하는 정렬기법. while 루프를 반복할 때 마다 k는 1씩 증가. k의 총 증가량 n-1+1 for 명령문은 최대 n-i+1 레코드를 복사한다. 레코드 길이 s 가 1보다 클 때 배열 대신 연결 리스트를 이용하면 이들 n-l+1 레코드를 포함한 새로운 정렬된 연결 리스트를 얻을 수 있다. merge 함수에서 배열 mergedList 가 필요한 n-l+1 개의 레코드 공간이 필요 없게 된다. 대신 n-l+1 개의 링크에 대한 공간이 필요하다. void merge(element initList[], element mergedList[], int i, int m, int n) { int j, k, t; j = m + ..