大连h5网站建设,123网络之家主页,家庭 wordpress,廊坊建手机网站算法-归并排序
时间复杂度#xff08;nlogn#xff09;
归并排序是用分治思想#xff0c;分治模式在每一层递归上有三个步骤#xff1a;
分解#xff08;Divide#xff09;#xff1a;将n个元素分成个含n/2个元素的子序列。解决#xff08;Conquer#xff09;…算法-归并排序
时间复杂度nlogn
归并排序是用分治思想分治模式在每一层递归上有三个步骤
分解Divide将n个元素分成个含n/2个元素的子序列。解决Conquer用合并排序法对两个子序列递归的排序。合并Combine合并两个已排序的子序列已得到排序结果。
void merge_sort(int q[],int l,int r)
{if(lr) return;int mid(lr)1;merge_sort(q,l,mid);merge_sort(q,mid1,r);int tmp[q_max],il,jmid1,len0;while(imidjr){if(q[i]q[j]) tmp[len]q[i];else tmp[len]q[j];}while(imid) tmp[len]q[i];while(jr) tmp[len]q[j];for(il,j0;ir;i,j) q[i]tmp[j];
}