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 ...
随机推荐
- vscode中使用git
vscode中使用git 使用vscode打开git的文件时,会自动的跟踪文件的改动, 如果要提交修改,首先点击+,这个相当于git add, 这样会暂时保存,然后点击上面的√,然后在输入栏中输入修改 ...
- Dapr 官方文档中文翻译 v1.5 版本正式发布
作者:敖小剑 - Dapr Approver 经过 Dapr 中国社区十余位贡献者一个多月的努力,Dapr 官方文档中文翻译 v1.5 版本完成翻译和审校,正式发布并上线 Dapr 官网. 访问方式 ...
- ansible 三配置和命令集
一.Ansible配置 Ansible安装好之后的配置文件有如下两种: 1.yum安装,配置文件默认路径为: /etc/ansible/ansible.cfg 2.源码包安装,配置文件路径需要从软件包 ...
- 利用公网Msf+MS17010跨网段攻击内网
其实很多小白在对利用msf进行ms17010攻击的时候总是不成功,其实这都是因为网上大部分的文章都是写的内网对内网(192.168.1.2-->192.168.1.3)这样的案例,今天写了一下利 ...
- 安装backbox和win7双系统记录
安装backbox和win7双系统记录 描述 主机已先安装win7,通过ultralISO制作启动盘安装backbox 错误一: error paring from pcc... 这个错误是我在从U盘 ...
- GeneralUpdate20220323里程碑版本发布
大家好我是juster,GeneralUpdate的开源项目作者.这次将发布GeneralUpdate里程碑版本,该版本发生了巨大改变历时4个月的时间终于要和大家见面了.开源不易希望大家能多多支持.可 ...
- JDBC-Druid增删改查
由于刚学完JDBC,所以来小练一下,通过Druid实现对数据库的增删改查操作 (现在是真正简单的纯数据库操作,等我学过前端,再做一个比较具体的!) •数据库 新建一个数据库tb,创建brand表,有主 ...
- 整理分布式锁:业务场景&分布式锁家族&实现原理
1.引入业务场景 业务场景一出现: 因为小T刚接手项目,正在吭哧吭哧对熟悉着代码.部署架构.在看代码过程中发现,下单这块代码可能会出现问题,这可是分布式部署的,如果多个用户同时购买同一个商品,就可能导 ...
- Kafka 的设计架构你知道吗?
Producer :消息生产者,就是向 kafka broker 发消息的客户端. Consumer :消息消费者,向 kafka broker 取消息的客户端. Topic :可以理解为一个队列,一 ...
- 哪些是重要的bean生命周期方法? 你能重载它们吗?
有两个重要的bean 生命周期方法,第一个是setup , 它是在容器加载bean的时候被调用.第二个方法是 teardown 它是在容器卸载类的时候被调用. The bean 标签有两个重要的属性 ...