题解 | #输入整型数组和排序标识,对其元素按照升序或降序进行排序#

输入整型数组和排序标识,对其元素按照升序或降序进行排序

http://www.nowcoder.com/practice/dd0c6b26c9e541f5b935047ff4156309

C++简单题解:
使用快排进行排序:选定一个基准数,从后往左找小于基准数的数,从前往后找大于基准数的数,直到两个指针碰头,最后基准数左右两边分别为大于、小于基准数的数。

#include<iostream>
using namespace std;

int quick(int a[],int i, int j)
{
    int tmp=a[i];
    while(i<j)
    {
        while(i<j&&tmp<=a[j])
            j--;
        if(i<j) a[i++]=a[j];
        while(i<j&&tmp>=a[i])
            i++;
        if(i<j) a[j--]=a[i];
    }
    a[i]=tmp;
    return i;
}
void sort(int a[], int i, int j)
{
    if(i<j)
    {
        int t=quick(a,i,j);
        sort(a,i,t-1);
        sort(a,t+1,j);
    }

}
int main()
{
    int n,flag;
    while(cin>>n)
    {
        int a[n];
        for(int i=0; i<n; i++)
            cin>>a[i];
        cin>>flag;
        sort(a, 0, n-1);
        if(flag)
            for(int i=n-1; i>=0; i--)
                cout << a[i] << " ";
        else
            for(int i=0; i<n; i++)
                cout << a[i] << " ";
        cout << endl;
    }
    return 0;
}
全部评论

相关推荐

09-01 11:31
门头沟学院 Java
buul:七牛云的吧,感觉想法是好的,但是大家没那么多时间弄他这个啊。。。不知道的还以为他是顶尖大厂呢还搞比赛抢hc,只能说应试者的痛苦考察方是无法理解的,他们只会想一出是一出
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务