快排思想
int position(int * num,int left,int right)
{
int temp=num[left];//选出中值
while(left<right){
while(left<right&&num[right]>=temp)//从右开始,如果不符合指针一直向左
right--;
num[left]=num[right];//直到符合,开始交换
while(left<right&&num[left]<temp)left++;//从左开始,如果不符合指针一直向右
num[right]=num[left];//直到符合,开始交换,左边只要一交换就变换到右边,重复
}
num[left]=temp;//插入中值
return left;
}
void quicksort(int* sums,int p,int q)
{
if(p>q)return;
else{
int point=position(sums,p,q);//找到中值
quicksort(sums,p,point-1);//0-中值快排
quicksort(sums,point+1,q);//中值到右边快排
}
}
void merge(int* nums1, int nums1Size, int m1, int* nums2, int nums2Size, int n1) {
int m=m1;
int n=n1;
for(int i=m,j=0;i<nums1Size,j<n;i++,j++)
{nums1[i]=nums2[j];}
quicksort(nums1,0,nums1Size-1);
}