合并排序依赖于合并操作,即将两个已经排序的序列合并成一个序列,具体的过程如下:
1申请空间,使其大小为两个已经排序序列之和,然后将待排序数组复制到该数组中。
2设定服务器托管网两个指针,最初位置分别为两个已经排序序列的起始位置
3 比较复制数组中两个指针所指向的元素,选择相对小的元素放入到原始待排序数组中,并移动指针到下一位置
4重复步骤3直到某一指针达到序列尾
5 将另一序列剩下的所有元素直接复制到原始数组末尾
代码参考
https://blog.csdn.net/fly_yr/article/details/8550097?ops_request_misc=&request_id=&biz_id=102&utm_term=%E5%90%88%E5%B9%B6%E6%8E%92%E5%BA%8F&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduweb~default-1-8550097.142v99pc_search_result_base5&spm=1018.2226.3001.4187
#include
#include
#include
#define N 15
using namespace std;
void Merge(int * array,int low,int middle,int high);
void MergeSort(int * array,int low,int high);
int main()
{
int array[N];
srand(time(0));//设置随机化种子,避免每次产生相同的随机数
for(int i=0 ; iN ; i++)
{
array[i] = rand()%101;//数组赋值使用随机函数产生1-100之间的随机数
}
cout"排序前:"endl;
for(int 服务器托管网j=0;jN;j++)
{
coutarray[j]" ";
}
coutendl"排序后:"endl;
//调用合并排序函数对该数组进行排序
MergeSort(array,0,N-1);
for(int k=0;kN;k++)
{
coutarray[k]" ";
}
coutendl;
return 0;
}//main
void MergeSort(int *array,int low,int high)
{
if(lowhigh)
{
int middle = (low+high)/2;
MergeSort(array,low,middle);
MergeSort(array,middle+1,high);//注意取值middle+1 至 q
Merge(array,low,middle,high);
}//if
}//MergeSort
void Merge(int *array,int low,int middle,int high)
{
int lSize = middle-low+1;//low至middle之间的数据个数
int rSize = high-middle;//middle至high之间的数据个数
int *lArray = new int[lSize];//声明左半边数组
int *rArray = new int[rSize];//声明右半边数组
for(int i=0;ilSize;i++)
{
lArray[i] = array[low+i];//为左半边数组赋值
}//for
for(int j=0;jrSize;j++)
{
rArray[j] = array[middle+j+1];//为右半边数组赋值
}//for
/*a为了Array数组的循环变量,b为rArray数组的循环变量,
*k为原数组array的循环变量
*/
int a=0,b=0,k;
for(k=low;khigh;k++)
{
if(a>=lSize)
{
array[k] = rArray[b++];
}else if(b>=rSize){
array[k] = lArray[a++];
}else{
if(lArray[a]rArray[b])
{
array[k] = lArray[a++];
}else{
array[k] = rArray[b++];
}//else
}//else
}//for
}//Merge
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
相关推荐: 【故障排查】10分钟解决Quartz重复调度的疑难杂症
【开源中国 APP 全新上线】“动弹” 回归、集成大模型对话、畅读技术报告” 我司使用Apache DolphinScheduler作为调度框架很久了,感兴趣的小伙伴可以看看这些干货文章: 因为之前监控到会出现重复的调度的问题,所以此文记录排查重复调度问题的全…