解题思路:

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语言代码)相关推荐

  1. 指针数组下标JAVA_Java语言中可用下标和指针两种方式表示数组元素。

    [判断题]一行可以写多条预处理命令 [判断题]如果一个java程序中有多个类,编译后只生成一个字节码文件,其名字同主类名一致. [判断题]Protected类型的实例变量只能在本类中使用,其他类中不可 ...

  2. 在c语言中数组下标的最小值,数组元素下标的上限_c语言中,数组元素的下标下限为...

    展开全部 c语言中,数组元素的下标下限为0. 数组中的各元素的存e69da5e887aa62616964757a686964616f31333431373230储是有先后顺序的,它们在内存中按照这个先 ...

  3. 174. 地下城游戏;剑指 Offer 40. 最小的k个数;378. 有序矩阵中第K小的元素;703. 数据流中的第K大元素

    一些恶魔抓住了公主(P)并将她关在了地下城的右下角.地下城是由 M x N 个房间组成的二维网格.我们英勇的骑士(K)最初被安置在左上角的房间里,他必须穿过地下城并通过对抗恶魔来拯救公主. 骑士的初始 ...

  4. 数组元素下标的上限_c语言中,数组元素的下标下限为

    展开全部 c语言中,数组元素的下标下限为0. 数组中的各元素的存e69da5e887aa62616964757a686964616f31333431373230储是有先后顺序的,它们在内存中按照这个先 ...

  5. python 无序列表中第k大元素_查询无序列表中第K小元素

    当需要在无需列表中寻找第k小的元素时,一个显然的方法是将所有数据进行排序,然后检索k个元素.这种方法的运行时间为O(n log(n)). 无序列表调用分区函数将自身分解成两个子表,其长度为i和n-i. ...

  6. c语言数组元素下标下限1,C语言中,数组元素的下标下限为

    明带哪项正确子头子透子从部进为精的A的过精过入卵.卵卵巢程即程B.受,语言中关于叙述以下与着床的受精. 纳差,数素患儿未接接种预防受过,重近3天加,温3体检:体,咳嗽热.8天因发,患者日咳有百附近. ...

  7. python语言中文社区-python numpy看这一篇就够了-Go语言中文社区

    numpy基础 1.为什么要学习numpy? -> 快速 -> 方便 -> 科学计算的基础库 2.什么是numpy? 一个在Python中做科学计算的基础库,重在数值计算,也是大部分 ...

  8. Java黑皮书课后题第7章:7.10(找出最小元素的下标)使用下面的方法头编写一个方法,求出一个整数数组中的最小元素下标。编写测试程序,提示用户输入10个数字,调用这个方法返回最小值的下标(多个则最小

    7.10(找出最小元素的下标)使用下面的方法头编写一个方法,求出一个整数数组中的最小元素下标.编写测试程序,提示用户输入10个数字,调用这个方法返回最小值的下标(多个则返回最小的下标) 题目 题目描述 ...

  9. c语言实现分治法求第K大元素(详细解释)

    注:本文不对快速排序作任何解释,建议在对快速排序有一定了解后再阅览 一.问题分析 最简单的做法应该是直接选择先将集合排序(比如快速排序),然后直接以k为下标从有序集合中获取.但是这样做时间复杂度其实是 ...

最新文章

  1. linux下php连接mysql数据库_Linux下PHP连接Oracle数据库
  2. Boost:无序的bimap双图的测试程序
  3. 在传统行业做数字化转型之团队篇
  4. Java如何控制用户输入的长度,用Java Applet 进行Web编程时,如何限制输入域中可输入字符的长度!解决后马上给分!!!...
  5. CS190.1x Scalable Machine Learning
  6. 信息学奥赛一本通(1176:谁考了第k名)——qsort 函数
  7. arcgis js api前端完成面积测算
  8. VC/MFC 下 递归遍历目录下的所有子目录及文件
  9. 小D课堂 - 新版本微服务springcloud+Docker教程_3-04 SpringCloud微服务核心组件Eureka介绍和闭源后影响...
  10. ask调制matlab实验,ASK调制的matlab代码
  11. slickedit背景颜色和当前关键字高亮
  12. 数据恢复原来是可以免费的!
  13. 无人机倾斜摄影测量土方计算
  14. 排序算法lowB三人组
  15. js中的经典题Foo.getName
  16. 读书笔记|| 类继承
  17. 免密钥登录脚本(转载)
  18. Qt - QLabel设置字体颜色
  19. Gradual Warmup Scheduler
  20. 米兔机器人魔方_米兔卡片学习机首晒

热门文章

  1. TiDB 官方设计文档翻译(一)
  2. 剑指offer:扑克牌的顺子问题
  3. php url传递参数_python+Requests接口自动化测试之传递 URL 参数
  4. crontab定时执行python脚本_linux下使用crontab定时执行python脚本
  5. 和低压电气有关的71个问题
  6. Python之pypmml:pypmml的简介、安装、使用方法之详细攻略
  7. CV:翻译并解读2019《A Survey of the Recent Architectures of Deep Convolutional Neural Networks》第一章~第三章
  8. Keras之MLP:利用MLP【Input(8)→(12)(relu)→O(sigmoid+二元交叉)】模型实现预测新数据(利用糖尿病数据集的八个特征实现二分类预测
  9. ML之FE:数据处理—特征工程之特征选择常用方法之基于搜索策略的三种分类、基于评价准则划分的三种分类(Filter/Wrapper/Embedded)及其代码实现
  10. 在Hyperopt框架下使用XGboost与交叉验证