void merge(int* src, int*dst, int start, int mid, int end){
int i=start;
int j=mid;
int index=start;
while (i<mid && j<end){
if (src[i]<src[j]){
dst[index]=src[i];
i++;
}
else {
dst[index]=src[j];
j++;
}
index++;
}
while (i<mid){
dst[index++]=src[i++];
}
while (j<end){
dst[index++]=src[j++];
}
}
void merge_split(int* src, int* dst, int start, int end){
if (end-start <= 1){
return;
}
int midpoint = (end+start)/2;
merge_split(dst,src,start,midpoint);
merge_split(dst,src,midpoint,end);
merge(dst,src,start,midpoint,end);
}
void merge_sort(int* array, int array_size){
int create_copy;
int* copy_array=create_copy(array, array_size);
merge_split(array, copy_array, 0, array_size);
}
int
fonksiyon gibi cagrilmis.
nasıl düzeltebilirim peki biliyor musun?
Hayir, cunku ne yapmaya calistigini bilmiyorum. bkz: Soru Sorarken Sıkça Düşülen Hatalar #8