快速排序+归并排序

Posted wasbry

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了快速排序+归并排序相关的知识,希望对你有一定的参考价值。

快排(双指针):

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];//合二为一操作
}

以上是关于快速排序+归并排序的主要内容,如果未能解决你的问题,请参考以下文章

堆排序;快速排序;归并排序

常用排序快速排序与归并排序

链表的快速排序和归并排序

排序算法中——归并排序和快速排序

经典排序算法和python详解:归并排序快速排序堆排序计数排序桶排序和基数排序

快速排序-插入排序-归并排序