标签:归并 -- i++ return 快排 temp lse 快速 else
快排(双指针):
void quick_sort(int q[],int l,int r)
{
  if(l>=r)return ;
      int i=l-1,j=r+1,x=q[(l+r)>>1];
      while(i<j)
  {
            do i++;while(q[i]<x);
    do j--;while(q[j]>x);
            if(i<j)swap(q[i],q[j]);
       }
    quick_sort(q,l,j),quick_sort(q,j+1,r);
}
归并排序
void merge_sort(int q[N], int l, int r)
{
	  if (l >= r)return;
	  int mid = (l + r )>> 1;
	  merge_sort(q, l, mid),merge_sort(q, mid+1, r);//一分为二
	  int k = 0 ,i=l,j=mid+1;//指针处理
	  while (i <= mid && j <= r)
	  {
		    if (q[i] < q[j]) temp[k++] = q[i++];
		    else temp[k++] = q[j++];
	  }
	while (i <= mid)temp[k++] = q[i++];
	while (j <= r)temp[k++] = q[j++];
	for (int j = 0,i=l; i <= r; i++,j++) 	q[i] = temp[j];//合二为一操作
}
标签:归并 -- i++ return 快排 temp lse 快速 else
原文地址:https://www.cnblogs.com/WAsbry/p/13159988.html