-
카테고리
-
세부 분야
알고리즘 · 자료구조
-
해결 여부
미해결
DFS 함수 선언
21.07.07 14:49 작성 조회수 117
0
#include <iostream>
#include <vector>
#include <algorithm>
#include <string>
#include <stack>
int a[101],n;
int tmp[101];
using namespace std;
void merge(int start, int end){
if(start >= end) return;
else {
int mid = (start+end)/2;
merge(start,mid);
merge(mid+1,end);
int i = start;
int j = mid+1;
int k = start;
while (i <= mid && j <= end){
if(a[i] <= a[j]) tmp[k++] = a[i++];
else tmp[k++] = a[j++];
}
if(i <= mid) {
while(i<=mid){
tmp[k++] = a[i++];
}
}
else if (j<= end){
while(j<= end){
tmp[k++] = a[j++];
}
}
for (int t = start; t <= end; t++){
a[t] = tmp[t];
}
}
}
int main(){
int n;
scanf("%d",&n);
for(int i = 1; i <= n; i++){
scanf("%d",&a[i]);
}
merge(1,n);
for (int t = 1; t <= n; t++){
printf("%d ",tmp[t]);
}
return 0;
}
함수를 선언할 때 선생님께서는 merge(a,1,n)으로 배열까지 앞에 넣어 선언했는데 저는 merge(1,n)으로 해도 실행이 되었습니다.
앞에 배열을 넣어주는 특별한 이유가 있나요?
답변을 작성해보세요.
답변 1