7-19(排序) 寻找大富翁 (25 分)(归并排序)(C语言实现)
7-19(排序) 寻找大富翁 (25 分)
输入格式:
输出格式:
输入样例:
输出样例:
#include<stdio.h>
#include<stdlib.h>
#define MAX_SIZE 1100000
int a[MAX_SIZE]; //因为MAX_SIZE 太大,所以数组要定义在函数以外
int temp[MAX_SIZE]; //中间数组,用完后赋值给原数组
int merging(int* list1,int list1_size,int *list2,int list2_size)
{
int i=0,j=0,k=0;
while(i<list1_size&&j<list2_size) //线性表的merge排序操作,merge的意思是融入
{
if(list1[i]<list2[j])
{
temp[k++]=list1[i++]; //注意不要漏掉里面的++
}
else
{
temp[k++]=list2[j++];
}
}
while(i<list1_size)
{
temp[k++]=list1[i++];
}
while(j<list2_size)
{
temp[k++]=list2[j++];
}
for(i=0;i<list1_size+list2_size;i++) //赋值给原数组
{
list1[i]=temp[i];
}
return 0;
} int MergeSort(int *a,int n)
{
if(n>1)
{
int *list1=a;
int list1_size=n/2;
int *list2=a+list1_size;
int list2_size=n-list1_size;
MergeSort(list1,list1_size); //递归左边的数组,对半分
MergeSort(list2,list2_size); //递归右边的数组,对半分,因为对半分的,所以时间复杂度为log(n) merging(list1,list1_size,list2,list2_size); //合的操作,将左右有序的合为一个数组 }
return 0;
} int main()
{
int n,m;
scanf("%d%d",&n,&m);
int i,flag=0;
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
MergeSort(a,n);
if(n>m) //---这里加一个判断,n与m不一定谁大,不然有一个点过不了
{
for(i=n-1;i>=n-m;i--)
{
if(flag==1)printf(" ");flag=1;
printf("%d",a[i]);
}
}
else
{
for(i=n-1;i>=0;i--)
{
if(flag==1)printf(" ");flag=1;
printf("%d",a[i]);
}
}
return 0;
}
7-19(排序) 寻找大富翁 (25 分)(归并排序)(C语言实现)的更多相关文章
- PTA数据结构与算法题目集(中文) 7-38寻找大富翁 (25 分)
PTA数据结构与算法题目集(中文) 7-38寻找大富翁 (25 分) 7-38 寻找大富翁 (25 分) 胡润研究院的调查显示,截至2017年底,中国个人资产超过1亿元的高净值人群达15万人.假 ...
- 06-图1 列出连通集 (25分)(C语言邻接表实现)
题目地址:https://pta.patest.cn/pta/test/558/exam/4/question/9495 由于边数E<(n*(n-1))/2 所以我选用了邻接表实现,优先队列用循 ...
- 1010 一元多项式求导 (25 分) C语言
设计函数求一元多项式的导数.(注:xn(n为整数)的一阶导数为nxn−1.) 输入格式: 以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过 1000 的整数).数字间以空格分隔. ...
- SDUT 3401 数据结构实验之排序四:寻找大富翁.!
数据结构实验之排序四:寻找大富翁 Time Limit: 150MS Memory Limit: 512KB Submit Statistic Problem Description 2015胡润全球 ...
- PTA 09-排序1 排序 (25分)
题目地址 https://pta.patest.cn/pta/test/15/exam/4/question/720 5-12 排序 (25分) 给定NN个(长整型范围内的)整数,要求输出从小到大 ...
- hdoj 3785 寻找大富翁【优先队列+sort排序】
寻找大富翁 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submi ...
- SDUT OJ 数据结构实验之排序四:寻找大富翁
数据结构实验之排序四:寻找大富翁 Time Limit: 200 ms Memory Limit: 512 KiB Submit Statistic Discuss Problem Descripti ...
- PAT 甲级 1062 Talent and Virtue (25 分)(简单,结构体排序)
1062 Talent and Virtue (25 分) About 900 years ago, a Chinese philosopher Sima Guang wrote a histor ...
- PAT 甲级 1028 List Sorting (25 分)(排序,简单题)
1028 List Sorting (25 分) Excel can sort records according to any column. Now you are supposed to i ...
随机推荐
- Excel 使用 公式
1. 查询单元数据在另一列中是否存在 =VLOOKUP(E2,F:F,1,FALSE) 2.判断一列数据是否重复 =IF(COUNTIF(A:A,A2)>1,"重复",&qu ...
- unicode和unicode编码
unicode编码是什么? 这其实是两个问题,unicode 是什么什么?unicode是怎样编码的? What is Unicode? Unicode provides a unique numbe ...
- collections 数据类型扩展模块
在内置数据类型(dict.list.set.tuple)的基础上,collections模块还提供了几个额外的数据类型:Counter.deque.defaultdict.namedtuple和Ord ...
- 初识$router和$route
初识\(router和\)route 一.前言 vue框架中单页面富应用可以说是其最大的优点功能之一了,应用起来简单直观,说起单页面富应用那就必须得联想到\(router**,但是在项目开发过程中 ...
- li 与 li 之间有空白间隔是什么原因引起的,有什么解决办法
li 与 li 之间有空白间隔是什么原因引起的,有什么解决办法 原因 浏览器会把inline元素间的空白字符(空格.换行.Tab等)渲染成一个空格.而为了美观,我们通常是一个 放在一行,这导致 换行后 ...
- 不重写hash不重写equals造成的问题
不重写hash造成的问题 第一,就是不重写,调用object 的hashCode方法,用的是地址, 比如现在你map.put() 10000个对象,这时候对象都是不同的地址,计算出不同的对应的桶位置( ...
- DispatcherServlet?
Spring的MVC框架是围绕DispatcherServlet来设计的,它用来处理所有的HTTP请求和响应.
- 如何确保消息正确地发送至 RabbitMQ?如何确保消息接收方消费了消息?
发送方确认模式 将信道设置成 confirm 模式(发送方确认模式),则所有在信道上发布的消息都会被指派一个唯一的 ID.一旦消息被投递到目的队列后,或者消息被写入磁盘后(可持久化的消息),信道会发送 ...
- 什么是持续集成CI?
持续集成(CI)是每次团队成员提交版本控制更改时自动构建和测试代码的过程. 这鼓励开发人员通过在每个小任务完成后将更改合并到共享版本控制存储库来共 享代码和单元测试.
- 分享一波dubbo mybatis plus百度云链接
https://pan.baidu.com/s/1VtfoVJwan-XPvmQfBIKMhA