D.S.
Übermensch : To a Brighter Future
D.S.
전체 방문자
오늘
어제
  • 분류 전체보기 (109)
    • Lecture Notes (1)
      • CS231n (1)
    • Thoughts on Videos (ToV) (7)
    • Tech (0)
    • 개인 기록 (0)
      • 프로그래밍공부일지 (0)
      • CS Study 한눈에 보기 (0)
    • 프로그래밍 (65)
      • C (35)
      • C++ (0)
      • Python (12)
      • 이코테python (8)
      • 2022군장병AI_SW_Elice (4)
      • 2022군장병AI_SW_Kakao (1)
      • Solidity (2)
      • Web (3)
    • Mental Augmentation (28)
      • Kwik Reading (22)
      • 독서 (0)
      • 갸꿀팁 (2)
      • 3-Part Memory Training (1)
      • Kwik Recall (3)
    • Physical Augmentation (3)
      • Health Journal (2)
      • Sinclair Podcast (1)
    • Others (0)
      • 여행 (0)
    • Idea Bank (0)
      • VBA (0)
      • PLANS (0)
    • 22-2학기 수업 (0)
      • 데이터베이스시스템 (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

글쓰기

Kwik Reading

공지사항

인기 글

태그

  • 독서
  • 백준
  • 번역
  • 비문학독해
  • subvocalization
  • 속발음
  • 디지털 방해
  • 속독
  • 군장병
  • ai/sw
  • 뇌 요가
  • 습관
  • 짐 퀵
  • lifespan
  • 학습
  • 노화의 종말
  • elice
  • 기술독서
  • baekjoon
  • 우뇌
  • Dandapani
  • Jim Kwik
  • Kwik Reading
  • 속독 훈련
  • brain break
  • brain yoga
  • Eye Fixation
  • Infinity Technique
  • Kwik Brain
  • kwik recall

최근 댓글

hELLO · Designed By 정상우.
D.S.
프로그래밍/C

baekjoon 2751 w/ merge sort

프로그래밍/C

baekjoon 2751 w/ merge sort

2022. 1. 11. 22:41

#include <stdio.h>
#include<stdlib.h>

void mergesort(int*,int*,int,int);
void merge(int*,int*,int,int,int);
int main()
{
    int N;
    int* arr;
    int* order;
    scanf("%d", &N);
    arr = (int*)malloc(sizeof(int)*N);
    order = (int*)malloc(sizeof(int)*N);
    
    
    for(int i=0;i<N;i++)
        scanf("%d", &arr[i]);
        
    mergesort(arr, order, 0, N-1);
    
    for(int i=0;i<N;i++)
        printf("%d\n", arr[i]);
    
    return 0;
}

void mergesort(int* arr, int* order, int low, int high){
    int mid = (low + high) / 2;
    if(low<high){
        mergesort(arr, order,low, mid);
        mergesort(arr, order,mid+1, high);
        merge(arr, order,low, mid, high);
    }
}

void merge(int* arr, int* order, int low, int mid, int high){
    int i=low;
    int j = mid+1;
    int k = low;
    
    while(i<=mid && j<=high){
        if(arr[i]<arr[j])
            order[k++] = arr[i++];
        else
            order[k++] = arr[j++];
    }
    if(i<=mid)
        while(i<=mid){
            order[k++] = arr[i++];
        }
    else if(j<=high)
        while(j<=high){
            order[k++] = arr[j++];
        }
    for(i=low;i<=high;i++)
        arr[i] = order[i];
}





I'm guessing that quick sort would've been faster...

'프로그래밍 > C' 카테고리의 다른 글

baekjoon 1874 & runtime error: integer overflow  (0) 2022.01.12
baekjoon 1920 w/ binary search & merge sort  (0) 2022.01.11
baekjoon 1654 w/ binary search  (0) 2022.01.10
baekjoon 1436 w/ brute force  (0) 2022.01.10
baekjoon 1181 w/ mergesort  (0) 2022.01.09
    '프로그래밍/C' 카테고리의 다른 글
    • baekjoon 1874 & runtime error: integer overflow
    • baekjoon 1920 w/ binary search & merge sort
    • baekjoon 1654 w/ binary search
    • baekjoon 1436 w/ brute force
    D.S.
    D.S.

    티스토리툴바

    단축키

    내 블로그

    내 블로그 - 관리자 홈 전환
    Q
    Q
    새 글 쓰기
    W
    W

    블로그 게시글

    글 수정 (권한 있는 경우)
    E
    E
    댓글 영역으로 이동
    C
    C

    모든 영역

    이 페이지의 URL 복사
    S
    S
    맨 위로 이동
    T
    T
    티스토리 홈 이동
    H
    H
    단축키 안내
    Shift + /
    ⇧ + /

    * 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.