恩换了一个充满了圣诞气氛的主题【别告诉我没看出来:)
这周就是圣诞节辣好激动!!
恩刚刚才发现原来现在已注册用户发表评论还要经过人工审核,宝宝已经把这条规则去掉啦!
有什么事要跟宝宝说哦quq
恩恩不过发表评论请遵循美利坚合众国相关法律:)
Daily Archives: 2015-12-20
【深鞠躬!
Er,非常抱歉不小心把上一篇文章(一个充满信仰的视频的外链音乐不小心设成自动播放了,当天晚上用手机查看的时候因为手机是静音状态没有发现这个问题orz,而因为在学校比较忙也没怎么注意网站的状态orz
如果那个自动播放吓到你了实再是不好意思【深鞠躬
那个自动播放宝宝已经去掉啦!
归并排序MergeSort
归并排序是创建在归并上的一种有效排序方法,说人话就是将目标数组分成许多小数组,将小数组分别进行排序后,再将小数组有序合成大数组的排序方法,其比较次数介于
和
之间【n为数组长度,各种复杂度详见百度百科
恩于是自己写了一个归并算法的头
#ifndef MERGESORT
#define MERGESORT
#endif
void MergeSort(int*,int,int);
void Merge(int* oriArr,int Arr_start,int Arr_end);
void Merge(int* oriArr,int Arr_start,int Arr_end) {
int tempArr[Arr_end-Arr_end+1];
int indexFirstArr=Arr_start,
indexSecondArr=(Arr_start+Arr_end)/2+1,
indexTempArr=Arr_start;
while(indexFirstArr!=(Arr_start+Arr_end)/2+1&&indexSecondArr!=Arr_end+1) //
if(oriArr[indexFirstArr]>oriArr[indexSecondArr])
tempArr[indexTempArr++]=oriArr[indexFirstArr++];
//Automatically add 1 to indexes for being used in the next term of loop
else
tempArr[indexTempArr++]=oriArr[indexSecondArr++];
while(indexFirstArr!=(Arr_start+Arr_end)/2+1)
tempArr[indexTempArr++]=oriArr[indexFirstArr++];
while(indexSecondArr!=Arr_end+1)
tempArr[indexTempArr++]=oriArr[indexSecondArr++];
//these two while loops add the left number to the tempArr
for(int i=Arr_start;i<=Arr_end;i++)
oriArr[i]=tempArr[i];
return;
}
void MergeSort(int oriArr[],int Arr_start,int Arr_end) {
if(Arr_start!=Arr_end) {
int Arr_mid=(Arr_start+Arr_end)/2;
MergeSort(oriArr,Arr_start,Arr_mid);
MergeSort(oriArr,Arr_mid+1,Arr_end);
Merge(oriArr,Arr_start,Arr_end);
}
return;
}