怎么使用C++在无序数组中实现选择第k小个数
发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,今天小编给大家分享一下怎么使用C++在无序数组中实现选择第k小个数的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获
千家信息网最后更新 2025年01月20日怎么使用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安全错误
数据库的锁怎样保障安全
上海管理软件开发商
智慧水务软件开发成本
发送请求修改多个数据库数据
植物数据库中科院
数据库关系模型设计
虎巴服务器
互联网科技分级
鹤岗网络安全宣传
汉威科技工业互联网排名
网络技术分那些
色盲可以学软件开发吗
白湖监狱网络安全管理
《网络安全管理制度》
数据库用户响应时间
为什么兴趣部落连不上服务器
csgo魔兽服务器
安奇信网络安全与诺顿网络特警
研究计算机网络技术的目的
网络安全演讲稿的格式
网络安全检查都查什么
秋光之月服务器
全球服务器安全
高德地图 地图服务器
服务器多少钱一斤啊
软件开发检验记录
汉威科技工业互联网排名
阿里云服务器如何进入数据库
软件开发做不过35岁
服务器风扇防护网
web 文件管理服务器