c语言最小元素下标怎么看,查找最小的k个元素 (C语言代码)
解题思路:
1.对于初学者来说,可能会对n个整数用冒泡或者选择排序从小到大排序,然后输出最小的k个数即可。
2.但是如果数据量真的到1万或者10万的话,用普通排序肯定会超时哦,可以用桶排序来实现。如果数据量在1万之内,也可以直接用简化版的桶排序就可以了,建议大家学一下这种方法哦。
参考代码://方法1:选择排序,自己写排序算法
#include
int main()
{
int a[10001],n,min,i,j,k,t;
scanf("%d%d",&n,&k); //n表示个数,k表示查找最小k个
for(i=0;i
scanf("%d",&a[i]);
for(i=0;i
{
min=i; //min表示每一趟最小值下标
for(j=i;j
if(a[min]>a[j])
min=j;
if(min!=i)
{
t=a[i];a[i]=a[min];a[min]=t;
}
}
for(i=0;i
{
printf("%d",a[i]);
if(i!=k)
printf(" ");
}
return 0;
}//方法2:这一题数据量应该不够,如果真的有10000个数据排序,用普通的排序方法会超时哦。所以可以用桶排序。
//在这里因为数据只有10000个,也不多。可以用简化版的桶排序就可以了。桶排序Bucket Sort
//请看源程序吧,还是用C语言写的。
#include
#include
#define N 10000+5
int main()
{
int bucket[N]={0}; //bucket 是桶的意思 Bucket Sort(桶排序)
int i,n,k,index;
scanf("%d%d",&n,&k); //n表示个数,k表示查找最小k个
memset(bucket,0,sizeof(bucket)); //清零,这里也可以不要,因为数组定义初始化为0了
for(i=0;i
{
scanf("%d",&index);
bucket[index]++; //按输入的数据作为下标,放到桶里面去,统计该数出现的次数。
//例如输入10,则bucket[10]++,bucket[10]=1,下次再输入10,会得到bucket[10]=2
}
index=0;
while(k) //输出最小k个数
{
if(bucket[index]==0) //如果为0,表示没有出现index,否则就是index出现bucket[index]次
{
index++;
}
else //index出现bucket[index]次 ,输出
{
printf("%d ",index);
bucket[index]--;
k--; //输出之后才减1,不输出不能减1哦
}
}
return 0;
}
c语言最小元素下标怎么看,查找最小的k个元素 (C语言代码)相关推荐
- 指针数组下标JAVA_Java语言中可用下标和指针两种方式表示数组元素。
[判断题]一行可以写多条预处理命令 [判断题]如果一个java程序中有多个类,编译后只生成一个字节码文件,其名字同主类名一致. [判断题]Protected类型的实例变量只能在本类中使用,其他类中不可 ...
- 在c语言中数组下标的最小值,数组元素下标的上限_c语言中,数组元素的下标下限为...
展开全部 c语言中,数组元素的下标下限为0. 数组中的各元素的存e69da5e887aa62616964757a686964616f31333431373230储是有先后顺序的,它们在内存中按照这个先 ...
- 174. 地下城游戏;剑指 Offer 40. 最小的k个数;378. 有序矩阵中第K小的元素;703. 数据流中的第K大元素
一些恶魔抓住了公主(P)并将她关在了地下城的右下角.地下城是由 M x N 个房间组成的二维网格.我们英勇的骑士(K)最初被安置在左上角的房间里,他必须穿过地下城并通过对抗恶魔来拯救公主. 骑士的初始 ...
- 数组元素下标的上限_c语言中,数组元素的下标下限为
展开全部 c语言中,数组元素的下标下限为0. 数组中的各元素的存e69da5e887aa62616964757a686964616f31333431373230储是有先后顺序的,它们在内存中按照这个先 ...
- python 无序列表中第k大元素_查询无序列表中第K小元素
当需要在无需列表中寻找第k小的元素时,一个显然的方法是将所有数据进行排序,然后检索k个元素.这种方法的运行时间为O(n log(n)). 无序列表调用分区函数将自身分解成两个子表,其长度为i和n-i. ...
- c语言数组元素下标下限1,C语言中,数组元素的下标下限为
明带哪项正确子头子透子从部进为精的A的过精过入卵.卵卵巢程即程B.受,语言中关于叙述以下与着床的受精. 纳差,数素患儿未接接种预防受过,重近3天加,温3体检:体,咳嗽热.8天因发,患者日咳有百附近. ...
- python语言中文社区-python numpy看这一篇就够了-Go语言中文社区
numpy基础 1.为什么要学习numpy? -> 快速 -> 方便 -> 科学计算的基础库 2.什么是numpy? 一个在Python中做科学计算的基础库,重在数值计算,也是大部分 ...
- Java黑皮书课后题第7章:7.10(找出最小元素的下标)使用下面的方法头编写一个方法,求出一个整数数组中的最小元素下标。编写测试程序,提示用户输入10个数字,调用这个方法返回最小值的下标(多个则最小
7.10(找出最小元素的下标)使用下面的方法头编写一个方法,求出一个整数数组中的最小元素下标.编写测试程序,提示用户输入10个数字,调用这个方法返回最小值的下标(多个则返回最小的下标) 题目 题目描述 ...
- c语言实现分治法求第K大元素(详细解释)
注:本文不对快速排序作任何解释,建议在对快速排序有一定了解后再阅览 一.问题分析 最简单的做法应该是直接选择先将集合排序(比如快速排序),然后直接以k为下标从有序集合中获取.但是这样做时间复杂度其实是 ...
最新文章
- linux下php连接mysql数据库_Linux下PHP连接Oracle数据库
- Boost:无序的bimap双图的测试程序
- 在传统行业做数字化转型之团队篇
- Java如何控制用户输入的长度,用Java Applet 进行Web编程时,如何限制输入域中可输入字符的长度!解决后马上给分!!!...
- CS190.1x Scalable Machine Learning
- 信息学奥赛一本通(1176:谁考了第k名)——qsort 函数
- arcgis js api前端完成面积测算
- VC/MFC 下 递归遍历目录下的所有子目录及文件
- 小D课堂 - 新版本微服务springcloud+Docker教程_3-04 SpringCloud微服务核心组件Eureka介绍和闭源后影响...
- ask调制matlab实验,ASK调制的matlab代码
- slickedit背景颜色和当前关键字高亮
- 数据恢复原来是可以免费的!
- 无人机倾斜摄影测量土方计算
- 排序算法lowB三人组
- js中的经典题Foo.getName
- 读书笔记|| 类继承
- 免密钥登录脚本(转载)
- Qt - QLabel设置字体颜色
- Gradual Warmup Scheduler
- 米兔机器人魔方_米兔卡片学习机首晒
热门文章
- TiDB 官方设计文档翻译(一)
- 剑指offer:扑克牌的顺子问题
- php url传递参数_python+Requests接口自动化测试之传递 URL 参数
- crontab定时执行python脚本_linux下使用crontab定时执行python脚本
- 和低压电气有关的71个问题
- Python之pypmml:pypmml的简介、安装、使用方法之详细攻略
- CV:翻译并解读2019《A Survey of the Recent Architectures of Deep Convolutional Neural Networks》第一章~第三章
- Keras之MLP:利用MLP【Input(8)→(12)(relu)→O(sigmoid+二元交叉)】模型实现预测新数据(利用糖尿病数据集的八个特征实现二分类预测
- ML之FE:数据处理—特征工程之特征选择常用方法之基于搜索策略的三种分类、基于评价准则划分的三种分类(Filter/Wrapper/Embedded)及其代码实现
- 在Hyperopt框架下使用XGboost与交叉验证