搜索
查看: 468|回复: 4
打印 上一主题 下一主题

高精度快速排序(求助)

[复制链接]
跳转到指定楼层
楼主
发表于 2017-8-12 14:27:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
题目描述
【题意】
给出n个数,要求从小到大排好序后输出。
【输入格式】
第一行一个整数n(1<=n<=10 0000)
下来n行,每行一个整数,范围(1~10^100)
【输出格式】
输出n个排好序整数,每行一个。注意:是每行输出一个。
【样例输入】
4
2222
1111
4444
3333
【样例输出】
1111
2222
3333
4444

沙发
 楼主| 发表于 2017-8-12 14:29:11 | 只看该作者
本人只会C/C++语言
板凳
发表于 2017-10-21 13:20:02 | 只看该作者
使用string即可
地板
发表于 2017-10-22 16:03:54 | 只看该作者
/*********************/
C++写的
/*********************/
#include <iostream>
using namespace std;
void sort(int,int);
int *a;
int main()
{
    int n;
    cin>>n;
    a=new int(n+1);
    for (int i=1;i<=n;i++)
        cin>>a[i];
    sort(1,n);
    for (int i=1;i<=n;i++)
        cout<<a[i]<<endl;
}
void sort(int l,int r)
{
    int i,j,mid,p;
    i=l;
    j=r;
    mid=a[(l+r)/2];
    do
    {
        while (a[i]<mid)i++;
        while (a[j]>mid)j--;
        if(i<=j)
        {
            p=a[i];
            a[i]=a[j];
            a[j]=p;
            i++;j--;
        }
    }while(i<=j);
    if(l<j)sort(l,j);
    if(i<r)sort(i,r);
}
5#
发表于 2017-11-13 11:23:59 | 只看该作者
a=new int(n+1);  改行改成  a=new int[n+1];
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表