题目地址

https://pta.patest.cn/pta/test/15/exam/4/question/720

5-12 排序   (25分)

给定NN个(长整型范围内的)整数,要求输出从小到大排序后的结果。

本题旨在测试各种不同的排序算法在各种数据情况下的表现。各组测试数据特点如下:

  • 数据1:只有1个元素;
  • 数据2:11个不相同的整数,测试基本正确性;
  • 数据3:103个随机整数;
  • 数据4:104个随机整数;
  • 数据5:105个随机整数;
  • 数据6:105个顺序整数;
  • 数据7:105个逆序整数;
  • 数据8:105个基本有序的整数;
  • 数据9:105个随机正整数,每个数字不超过1000。

    输入格式:

    输入第一行给出正整数NN(\le 10^5≤10​5​​),随后一行给出NN个(长整型范围内的)整数,其间以空格分隔。

    输出格式:

    在一行中输出从小到大排序后的结果,数字间以1个空格分隔,行末不得有多余空格。

    输入样例:

    11
    4 981 10 -17 0 -20 29 50 8 43 -5

    输出样例:

    -20 -17 -5 0 4 8 10 29 43 50 981

这个题是帮你计时用的。。

/*
给定NN个(长整型范围内的)整数,要求输出从小到大排序后的结果。 本题旨在测试各种不同的排序算法在各种数据情况下的表现。各组测试数据特点如下: 数据1:只有1个元素;
数据2:11个不相同的整数,测试基本正确性;
数据3:103个随机整数;
数据4:104个随机整数;
数据5:105个随机整数;
数据6:105个顺序整数;
数据7:105个逆序整数;
数据8:105个基本有序的整数;
数据9:105个随机正整数,每个数字不超过1000。 此题本身是用来比较排序算法速度用的,不过用快排综合水平挺快的。 写完算了 快排的结果
时间 结果 得分 题目 编译器 用时(ms) 内存(MB) 用户
2017-07-05 21:16 答案正确 25 5-12 gcc 52 2
测试点结果
测试点 结果 得分/满分 用时(ms) 内存(MB)
测试点1 答案正确 1/1 1 1
测试点2 答案正确 10/10 2 1
测试点3 答案正确 2/2 2 1
测试点4 答案正确 2/2 7 1
测试点5 答案正确 2/2 49 2
测试点6 答案正确 2/2 52 2
测试点7 答案正确 2/2 47 2
测试点8 答案正确 2/2 41 2
测试点9 答案正确 2/2 47 1 另,快排把cutoff从3改为100后,速度稍微快了一些
评测结果
时间 结果 得分 题目 编译器 用时(ms) 内存(MB) 用户
2017-07-05 21:20 答案正确 25 5-12 gcc 48 2
测试点结果
测试点 结果 得分/满分 用时(ms) 内存(MB)
测试点1 答案正确 1/1 2 1
测试点2 答案正确 10/10 2 1
测试点3 答案正确 2/2 2 1
测试点4 答案正确 2/2 8 1
测试点5 答案正确 2/2 48 2
测试点6 答案正确 2/2 39 2
测试点7 答案正确 2/2 41 2
测试点8 答案正确 2/2 42 2
测试点9 答案正确 2/2 44 1 插排的结果
评测结果
时间 结果 得分 题目 编译器 用时(ms) 内存(MB) 用户
2017-07-05 21:19 答案正确 25 5-12 gcc 7915 2
测试点结果
测试点 结果 得分/满分 用时(ms) 内存(MB)
测试点1 答案正确 1/1 2 1
测试点2 答案正确 10/10 2 1
测试点3 答案正确 2/2 2 1
测试点4 答案正确 2/2 26 1
测试点5 答案正确 2/2 3495 2
测试点6 答案正确 2/2 40 2
测试点7 答案正确 2/2 7915 2
测试点8 答案正确 2/2 63 2
测试点9 答案正确 2/2 3587 1
*/ #include<stdio.h>
#define CUTOFF 100
int T[100000];
void swap(int *a,int *b)
{
int temp;
temp=*a;
*a=*b;
*b=temp;
} int median3(int a[],int left,int right)
{
// printf("median3 got %d as left,%d as right\n",left,right);
int middle=(left+right)/2;
if(a[left]>a[right])
swap(&a[left],&a[right]);
if(a[left]>a[middle])
swap(&a[left],&a[middle]);
if(a[middle]>a[right])
swap(&a[middle],&a[right]); swap(&a[middle],&a[right-1]);
// printf("median3 got %d as a pivot,middle=%d\n",a[right-1],middle);
return a[right-1];
} void InsertionSort(int a[],int left ,int right)
{
int i,j,temp;
for(i=left;i<right;i++)
{
temp=a[i+1];
for(j=i+1;j>left;j--)
{
if(temp<a[j-1])
a[j]=a[j-1];
else break;
}
a[j]=temp;
}
}
void quicksort(int a[],int left,int right)
{
int low,high,pivot;
low=left;
high=right-1;
if(right-left<=CUTOFF)
{
InsertionSort(a,left,right);
return;
} pivot=median3(a,left,right);
while(1)
{
while(a[++low]<pivot);
while(a[--high]>pivot);
if(low<high)
swap(&a[low],&a[high]);
else break;
}
swap(&a[low],&a[right-1]);
quicksort(a,left,low-1);
quicksort(a,low+1,right);
} int main()
{
int i,N;
scanf("%d",&N);
for(i=0;i<N;i++)
{
scanf("%d",&T[i]);
}
quicksort(T,0,N-1); for(i=0;i<N;i++)
{
printf("%d",T[i]);
if(i!=N-1)
printf(" ");
}
}

  

PTA 09-排序1 排序 (25分)的更多相关文章

  1. PTA 7-3 Windows消息队列 (25分)

    PTA 7-3 Windows消息队列 (25分) 消息队列是Windows系统的基础.对于每个进程,系统维护一个消息队列.如果在进程中有特定事件发生,如点击鼠标.文字改变等,系统将把这个消息加到队列 ...

  2. PTA 7-3 树的遍历 (25分)

    PTA 7-3 树的遍历 (25分) 给定一棵二叉树的后序遍历和中序遍历,请你输出其层序遍历的序列.这里假设键值都是互不相等的正整数. 输入格式: 输入第一行给出一个正整数N(≤30),是二叉树中结点 ...

  3. PTA 是否二叉搜索树 (25分)

    PTA 是否二叉搜索树 (25分) 本题要求实现函数,判断给定二叉树是否二叉搜索树. 函数接口定义: bool IsBST ( BinTree T ); 其中BinTree结构定义如下: typede ...

  4. PTA 哈利·波特的考试 (25分)

    PTA 哈利·波特的考试 (25分) 哈利·波特要考试了,他需要你的帮助.这门课学的是用魔咒将一种动物变成另一种动物的本事.例如将猫变成老鼠的魔咒是haha,将老鼠变成鱼的魔咒是hehe等等.反方向变 ...

  5. PTA 11-散列2 Hashing (25分)

    题目地址 https://pta.patest.cn/pta/test/16/exam/4/question/679 5-17 Hashing   (25分) The task of this pro ...

  6. PTA 03-树3 Tree Traversals Again (25分)

    题目地址 https://pta.patest.cn/pta/test/16/exam/4/question/667 5-5 Tree Traversals Again   (25分) An inor ...

  7. PTA 03-树1 树的同构 (25分)

    题目地址 https://pta.patest.cn/pta/test/15/exam/4/question/711 5-3 树的同构   (25分) 给定两棵树T1和T2.如果T1可以通过若干次左右 ...

  8. PTA 7-2 列车调度(25 分)

    7-2 列车调度(25 分) 火车站的列车调度铁轨的结构如下图所示. 两端分别是一条入口(Entrance)轨道和一条出口(Exit)轨道,它们之间有N条平行的轨道.每趟列车从入口可以选择任意一条轨道 ...

  9. PTA PAT排名汇总(25 分)

    PAT排名汇总(25 分) 计算机程序设计能力考试(Programming Ability Test,简称PAT)旨在通过统一组织的在线考试及自动评测方法客观地评判考生的算法设计与程序设计实现能力,科 ...

  10. PTA 5-14 电话聊天狂人 (25分)

    给定大量手机用户通话记录,找出其中通话次数最多的聊天狂人. 输入格式: 输入首先给出正整数NN(\le 10^5≤10​5​​),为通话记录条数.随后NN行,每行给出一条通话记录.简单起见,这里只列出 ...

随机推荐

  1. 关于React的赋值与调用方法

    #关于React的赋值与调用方法 比如调用方法的时候我们可以这样来使用closeFrm() <div className = "infoFrm_close" onMouseO ...

  2. css选择器(基础)

    CSS选择器:     一个样式的语法是由选择器+属性+属性值三部分组成: 到底什么是选择器呢? 答:个人直白的理解为:选择一种要对它进行操作的标签的方法就叫做选择器.也就是说选择器就是一种选择元素的 ...

  3. Linux下环境搭建(一)——java、tomcat配置

    通过2个周末小憩的时间,终究是把linux环境下的jenkins+gitlab+jmeter框架给弄好了.jenkins的配置系列文章,可以翻看我以前的博文.此次,就将在linux下搭建环境的过程以博 ...

  4. 项目经验——jboss 配置数据库连接池

    数据库的连接和关闭是非常消耗系统资源的,在多层结构的应用环境中,这种资源消耗又直接的反映到系统性能上来.在项目实际应用中,最常用的解决方案便是建立数据库连接池. 一.数据库连接池基本原理 当程序启动时 ...

  5. Openjudge 1.13-21:最大质因子序列

    总时间限制:  1000ms 内存限制:  65536kB 描述 任意输入两个正整数m, n (1 < m < n <= 5000),依次输出m到n之间每个数的最大质因子(包括m和n ...

  6. 洛谷 P2347 砝码称重 != codevs 2144

    题目描述 设有1g.2g.3g.5g.10g.20g的砝码各若干枚(其总重<=1000), 输入输出格式 输入格式: 输入方式:a1 a2 a3 a4 a5 a6 (表示1g砝码有a1个,2g砝 ...

  7. (五)mybatis之下载与基本构成

    1.  下载MyBatis. 输入网址:https://github.com/mybatis/mybatis-3/releases 进入Mybatis下载页面,选择第一个选项,然后就可以加载到myba ...

  8. confluent 更换ip地址之后修改数据库

    由于地址搬迁导致ip地址有变动,整个的confluence的服务器的ip的地址更换和对应的数据库地址更换 root@computer-PowerEdge-T30:/opt/atlassian/conf ...

  9. ubuntu 14.04 安装tomcat服务器 配置图片路径和文件路径

    root@hett-PowerEdge-T30:/usr/local/src# lltotal 235956drwxr-xr-x  6 root root      4096  3月 26 14:48 ...

  10. hibernate的注解

    1.many-to-one @ManyToOne @JoinColumn(name = "user_id") 2.many-to-many /** * 双向关联关系中,有且仅有一端 ...