怎么使用C++在无序数组中实现选择第k小个数
发表于:2025-11-13 作者:千家信息网编辑
千家信息网最后更新 2025年11月13日,今天小编给大家分享一下怎么使用C++在无序数组中实现选择第k小个数的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获
千家信息网最后更新 2025年11月13日怎么使用C++在无序数组中实现选择第k小个数
今天小编给大家分享一下怎么使用C++在无序数组中实现选择第k小个数的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。
从一个无序的整型数组中选出第k小的数,如k=1为最小数,k=n为最大数。这里数组可以是有重复的值!
下面是自己写的一个函数,记在此处来记忆我留下的痕迹!
//选择无序数组中第k小的数#includeusing namespace std ;bool failed = false ;//这里只考虑数组是int型的int findnumber(int *array,int start , int end, int k){ if(array == NULL || start > end || k < start || k > end+1 || k <= 0 ) { failed = true ; return 0; } if(start == end) { return array[start] ; } int len = end - start + 1 ; int tmp = 0 ; int ps = rand()%len +start ; int tk = k ; while(true) { //分割两数组 int f = start ; int t = array[ps] ; int equalnum = 0 ; for(int i = start ; i <= end ; i ++ ) { if(array[i]< t ) { tmp = array[f]; array[f] = array[i]; array[i] = tmp ; f ++ ; }else if(array[i] == t) { tmp = array[f]; array[f] = array[i]; array[i] = tmp ; f ++ ; equalnum ++ ; } } //end f--; if(equalnum > tk && (f - start + 1) == equalnum) { return t ;//这里是记录数据相等的数目,当我们从开始start处到最后处end都被这个值给充斥了,那么肯定是这里面的值了,再进行下去就会陷入死循环了。 } if(tk == (f - start + 1) ) { return t ; } if((f - start + 1 ) > tk ) { end = f ; }else { start = f + 1 ; tk = k - start ; //这个地方犯过错误,就是写成了k=k-start,在调试的时候老发现无限的循环。后来打印k的值的时候发现k的值都***为负了。这个bug,这个过错使得在一次运行可能会得到正确的数据,但是多次运行后程序就崩溃。 } len = end - start + 1 ; ps = rand()%len +start ; }}int main(){ int array[10] = {1,1,1,2,2,1,4,1,1,1}; for(int i = 0 ; i < 10 ; i ++ ) { cout< 以上就是"怎么使用C++在无序数组中实现选择第k小个数"这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注行业资讯频道。
数组
知识
篇文章
选择
个数
C++
中实
内容
就是
数据
时候
过错
面的
循环
运行
不同
很大
最大
最小
函数
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
苹果软件开发有用吗
内存数据库 nosql
网吧用云服务器还需要宽带吗
三相世界互联网领先科技成果
中山网络安全保研
杭州高科技互联网
应用软件开发哪家实惠
调用力控数据库
我看网络安全作文
石家庄网络安全宣传周启动
服务器正在顺序计算英语怎样说
央行网络安全态势
我的世界2b2t有服务器号吗
锐捷交换机查看日志服务器
济宁维乐妮网络技术有限公司
中小学开展网络安全周
sql语句数据库表平均值
微信截图软件开发
服务器软件更新
管家婆辉煌版用户不是服务器名
小程序软件开发公司简介百度百科
凤凰县网络安全保卫大队
组建云服务器
网络安全辩论会正方问题
盛世网络安全插画
北京云互联网络科技有限公司
网络安全有确定性吗
ai服务器市场发展前景调研报告
四川中小学生校园安全与网络安全
腾讯云为什么在会购买服务器啥的