还剩1页未读,继续阅读
文本内容:
二路归并排序代码二路归并排序是一种经典的分治算法,它将一个大的无序数组分成两个小的数组,对这两个小数组分别进行排序,然后将排序后的两个小数组合并成一个有序的数组下面是使用实现的二路归并排序的代码C++#include iostream#include vectorusingnamespace std;//合并两个有序数组void mergevectorint nums,int left,int mid,int right{vectorint tempright-left+1;int i=left,j=mid+1,k=0;while i=midj=right{if nums[i]nums[j]{temp[k++]=nums[i++];}else{temp[k++]=nums[j++];}while i=mid{temp[k++]=nums[i++];while j=right{temp[k++]=nums[j++];for intp=0;pk;p++{nums[left+p]=temp[p];}//归并排序递归函数void mergeSortvectorintnums,int left,int right{if leftright{int mid=left+right/2;mergeSortnums,left,mid;mergeSortnums,mid+1right;rmergenums left,mid,right;}A//归并排序入口函数㊀㊀void mergeSortvectorintnums{m rgSortnums,0,nums.size-1;int main{vectorintnums={38,27,43,3,9,8210};zmergeSortnums;for inti=0;inums.size;i++{ncoutnums[i];㊀coutndl;return0;}在上面的代码中,函数用于合并两个有序数组,函数是归并排merge mergeSort序的递归函数,它将一个大的数组分成两个小的数组,对这两个小数组分别进行排序,然后调用函数将排序后的两个小数组合并成一个有序的数组merge mergesort函数的入口函数用于初始化递归函数的参数在函数中,我们定义了一个无main序数组然后调用函数对它进行排序,最后输出排序后的结果nums,mergesort。
个人认证
优秀文档
获得点赞 0