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;
    }
  • 相关阅读:
    css 三角形
    转盘
    使用history.back()出现"警告: 网页已过期的解决办法"
    jQuery 左侧滑动
    Go语言数组的使用
    Go的变量作用域
    Go语言中函数的实现
    Go语言循环判断的使用~
    Go基础
    go环境的安装~
  • 原文地址:https://www.cnblogs.com/dichuan/p/8157981.html
Copyright © 2011-2022 走看看