MergeSort implement in C

2025. 9. 24. 17:20·개인공부정리페이지
void merge(element arr[], int left, int mid, int right, element tmp[]) {
	int i = left; // left part
	int j = mid + 1; // right part
	int k = left; // tmp index

	while (i <= mid && j <= right) {
		if (arr[i].row <= arr[j].row || (arr[i].row == arr[j].row && arr[i].col < arr[j].col)) {
			tmp[k++] = arr[i++]; // if already, keep going
		}
		else {
			tmp[k++] = arr[j++]; // if not already, back is setted.
		}
	}

	while (i <= mid) tmp[k++] = arr[i++];
	while (k <= right) tmp[k++] = arr[j++];

	//tmp -> arr 복사
	for (i = left; i <= right; i++) { arr[i] = tmp[i]; }

}

void mergeSort(element arr[], int left, int right, element tmp[]) { //ascending order
	int mid = (left + right) / 2;
	if (left < right) {
		mergeSort(arr, left, mid, tmp);
		mergeSort(arr, mid + 1, right, tmp);
		merge(arr, left, mid, right, tmp);
	}
}

'개인공부정리페이지' 카테고리의 다른 글

<MySQL> DATETIME 타입 DATE로 변환  (0) 2026.02.26
[트러블슈팅].. PEM키가 공개된사건  (0) 2025.11.29
코드 포매터  (0) 2025.08.31
어노테이션 : Bean과 Autowired의 차이  (0) 2025.08.23
C++ 공부  (0) 2025.07.25
'개인공부정리페이지' 카테고리의 다른 글
  • <MySQL> DATETIME 타입 DATE로 변환
  • [트러블슈팅].. PEM키가 공개된사건
  • 코드 포매터
  • 어노테이션 : Bean과 Autowired의 차이
sihyes
sihyes
24학번 컴퓨터공학과
  • sihyes
    시혜적으로개발
    sihyes
  • 글쓰기 관리
  • 전체
    오늘
    어제
    • 분류 전체보기 (106) N
      • 단순 설정 (9)
      • 백엔드 공부(BE, AWS) (8)
        • 로그인&회원가입 (3)
        • 파일업로드&GPT (2)
      • 개인 프로젝트 (2)
        • 알바솔로몬 (1)
        • PLACO 프로젝트 (0)
      • 도서 공부(정리) (20)
        • 알고리즘 코딩 테스트 자바 편 (1)
        • SQL첫걸음 (8)
        • 코딩 자율학습 스프링 부트 3 자바 백엔드 개발 .. (6)
        • Do it! 지옥에서 온 문서 관리자 깃&깃허브 .. (5)
      • 컴퓨터공학과 (51)
        • Python - 문해프 (1)
        • Java 1 & 2 (23)
        • 컴퓨터네트워크 (3)
        • 모앱JavaScript (0)
        • Data structures (9)
        • 소프트웨어공학 (5)
        • 오픈SW플랫폼 제출용 (5)
      • 개인공부정리페이지 (7) N
        • 백준 (2)
  • 블로그 메뉴

    • 홈
    • 태그
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    ㅇ
  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.4
sihyes
MergeSort implement in C
상단으로

티스토리툴바