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

      快速排序是一种分治排序方法,是复杂度为o(n*logn)中排序较快的一种,使用的也很多。

      基本思想是这样的:在所有数中选择一个数作为“基准”(一般是第一个或最后一个),然后将比它的大的放在它右分区,比它小的放在它左分区。再在两边重复刚才的操作,直到所有的分区都只剩下一个数,排序结束。

      下面是代码的递归实现:

    #include<iostream>
    using namespace std;
    int list[1000];
    void quicksort(int i,int j)
    {
        if(i<j)
        {
            int f,l,sym;
            f=i;
            l=j;
            sym=list[i]; //基准
            while(i<j)
            {
                while(i<j&&list[j]>=sym)
                    j--;
                if(i<j)
                    list[i++]=list[j];
                while(i<j&&list[i]<sym)
                    i++;
                if(i<j)
                    list[j--]=list[i];
            }
            list[i]=sym;
            quicksort(f,i-1);
            quicksort(i+1,l);
        }
    }
    int main()
    {
        int n,i,x;
        cin>>n;
        for(i=1;i<=n;i++)
        {    cin>>x;
            list[i]=x;
        }
        quicksort(1,n);
        for(i=1;i<n;i++)
            cout<<list[i]<<" ";
        cout<<list[n]<<endl;
        return 0;
    }

  • 相关阅读:
    onload执行顺序
    让EXCHANGE可以接收外部邮件服务器发送的邮件
    QQ网站里AppTui对象脚本
    owa2007写新邮件时已经选择人员不能带入到与通讯录选人界面问题解决方法
    qq网站里动态加载脚本的实现
    qq网站里对元素的操作方法
    让Exchange可以发送邮件到互联网的邮件服务器
    js实现的hashtable
    无线网卡共享网络发射
    css省略号效果
  • 原文地址:https://www.cnblogs.com/connorzx/p/2641716.html
Copyright © 2011-2022 走看看