zoukankan      html  css  js  c++  java
  • 快速排序+归并排序

    快排(双指针):

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

  • 相关阅读:
    逗号操作符使用小技巧
    字符解码?
    画图 wx.Window pen
    进程和线程
    内存管理
    简单的文本编辑器
    迭代器 Iterator
    文件操作
    ebay api学习
    一,wxpython入门
  • 原文地址:https://www.cnblogs.com/WAsbry/p/13159988.html
Copyright © 2011-2022 走看看