#include <stdio.h>
#define I 6
// 임시 배열은 merge가 실행되며 덮어쓰여진다. 결국엔 정렬됨
int copy[I];
void merge(int nums[],int n,int k,int max){
int i = n;
int j=k+1;
int m = 0;
while(i<=k && j<=max){ //어디까지나, 인덱스를 바탕으로 배열에 접근하는 것 뿐이다.
if(nums[i]<=nums[j]){
copy[m]=nums[i]; // 값이 실제로 움직이는 부분
m++;
i++;
}
else{
copy[m]=nums[j];
j++;
m++;
}
}
while(i<=k){ // 왼쪽부분 마저 넣기
copy[m]=nums[i];
i++;
m++;
}
while(j<=max){ //오른쪽 부분 마저 넣기
copy[m]=nums[j];
j++; //실제 값들을 비교하고 임시배열에 넣음
m++;
}
m--;
while(m>=0){
nums[m]=copy[m];
m--;
}
}
void mergesort(int nums[],int n,int max){
if (n<max){
int k=(n+max)/2; //좌표구하기용도
mergesort(nums,n,k);
mergesort(nums,k+1,max);
merge(nums,n,k,max);
}
else{
return;
}
}
int main (void){
int nums[I]={5,3,7,2,9,1};
mergesort(nums,0,I-1);
for(int t=0;t<I;t++){
printf("%d",nums[t]);
}
}
이거 왜 안되는지 아는 폰노이만 계시나요?
코드 예쁘게 올리는 법 vscode에서 복붙
https://carbon.now.sh/
알고리즘은 여기애들보단 ps갤이 더 잘암
ps 갤이 뭐임 검색해도 안나옴
코드 가독성이 나빠서 컴퓨터도 읽기를 포기했나봐요
이걸 누가 쳐 읽겟냐 씨발로마