归并排序是一种经典的排序算法,通过不断地将待排序序列分割成小的子序列,然后再将其合并成有序序列来实现排序。下面我们来看一段C++代码,实现归并排序的功能:
cpp #include#include usingnamespacestd; voidmerge(vector &nums,intleft,intmid,intright){ vector temp(right-left+1); inti=left,j=mid+1,k=0; while(i<=mid&&j<=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;p &nums,intleft,intright){ if(left>=right){ return; } intmid=left+(right-left)/2; mergeSort(nums,left,mid); mergeSort(nums,mid+1,right); merge(nums,left,mid,right); } intmain(){ vector nums={12,11,13,5,6,7}; mergeSort(nums,0,nums.size()-1); for(intnum:nums){ cout<
以上是一个简单的归并排序的C++实现代码。通过递归地将数组分割成更小的部分,然后合并这些部分,最终完成整个数组的排序。归并排序是一种稳定的排序算法,时间复杂度为O(nlogn),适用。
tokenpocket钱包app:https://gszyybyfy.com/app/72123.html