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

    Description

    有n个无序的整数,试把它们从小到大排序。

    要求:本题采用快速排序法来完成。

    Input

    输入共有2行,第一行是一个整数n ( 0 < n ≤ 100000 ),表示有n个整数。

    第二行是n个整数。

    Output

    输出每一次Partition之后的结果。规定每次选取"枢轴",都是选择当前区间的第一个元素。

    Sample Input

    14
    39 80 76 41 13 29 50 78 30 11 100 7 41 86

    Sample Output

    7 11 30 29 13 39 50 78 41 76 100 80 41 86
    7 11 30 29 13 39 50 78 41 76 100 80 41 86
    7 11 30 29 13 39 50 78 41 76 100 80 41 86
    7 11 13 29 30 39 50 78 41 76 100 80 41 86
    7 11 13 29 30 39 50 78 41 76 100 80 41 86
    7 11 13 29 30 39 41 41 50 76 100 80 78 86
    7 11 13 29 30 39 41 41 50 76 100 80 78 86
    7 11 13 29 30 39 41 41 50 76 100 80 78 86
    7 11 13 29 30 39 41 41 50 76 86 80 78 100
    7 11 13 29 30 39 41 41 50 76 78 80 86 100
    7 11 13 29 30 39 41 41 50 76 78 80 86 100

     
    #include<iostream>
    #include<stdio.h>
    using namespace std;
    int a[100002];
    int n;
    void qsort(int p,int r)
    {
        if(p>=r)
        {
            return ;
        }
        int x = a[p]; //基准数
        int i = p,j=r;
        while(i!=j)
        {
            while(a[j]>=x&&i<j)j--;a[i]=a[j];
            while(a[i]<=x&&i<j)i++;a[j]=a[i];
        }
        a[i]=x;
        for(int k=1; k<=n; k++)
        {
            cout << a[k] ;
            if(k==n)printf("
    ");
            else printf(" ");
        }
        qsort(p,i-1);
        qsort(i+1,r);
    
    }
    int main()
    {
        cin >> n;
        for(int i=1; i<=n; i++)
        {
            cin >> a[i];
        }
        qsort(1,n);
        return 0;
    }
  • 相关阅读:
    8.2Solr API使用(Facet查询)
    8.1Solr API使用(分页,高亮)
    7.Solr查询参数
    6.Solr4.10.3API使用(CURD)
    5.Solr4.10.3中配置中文分词器
    3.Solr4.10.3目录结构
    2.Linux环境下配置Solr4.10.3
    1.Solr介绍
    java集合中List与set的区别
    js快速排序
  • 原文地址:https://www.cnblogs.com/dichuan/p/8157981.html
Copyright © 2011-2022 走看看