寻找第n大的元素
来源:互联网 发布:轻小说 淘宝店 编辑:程序博客网 时间:2024/05/01 06:02
昨天看到一个题目,“寻找给定数组中第二大的元素”。这个很好考虑:假如第二大的元素是k,那么遍历整个数组大于k的元素数必然为1. 固有以下代码:
for(i =0;i<10;i++) { flag = 0; for(j=0;j<10;j++) { if(arr[i] < arr[j]) flag++; if(flag > 1) break; if((flag == 1) && (j == 9)) { printf("%d\n",arr[i]); i=10;//结束外层循环 } } }
忽然想起来以前似乎看到过有问“寻找数组第n大元素的问题”,就可以把上面的推广下:
int findnbig(int array[],int m,int n){ int i,j,flag; for(i = 0;i < m;i++) { flag = 0; for(j = 0;j < m;j++) { if(array[i] < array[j]) flag++; if(flag > n-1) break; if((flag == n-1) && (j == m-1)) return array[i]; } }}
回头再写个算法时间空间复杂度分析,我觉得我这种方法应该是比较快的吧。
- 寻找第n大的元素
- 寻找一个序列中第n大的元素
- 无序n个元素中,寻找第K大的元素 O(n)
- 寻找第k小的元素或者第k大的元素 -- O(n)
- 集合的第N大元素
- 寻找数组中的第i大的元素
- 找出第n大元素
- 寻找n个元素中的第2小元素
- N个数中第k大的元素
- 求数组中第n大(小)的元素
- NKOJ P2419 【单调队列】集合的第N大元素
- 寻找长为N的数组的前M大的元素并输出
- 寻找第K小元素O(N)算法
- CareerCup之2.2 寻找单链表倒数第n个元素
- 寻找给定区间内的第k小(大)的元素
- 寻找第K大元素的八大算法、源码及拓展
- 寻找数组中的第K大的元素&找数组中重复数字
- N 个元素的数组,求第K大的元素
- hdu 3018 Ant Trip
- C++的虚析构函数
- 黑马程序员_学习C#泛型_自己的泛型Stack类
- tiny210 uboot nfs 启动android
- Linux 汇编语言
- 寻找第n大的元素
- openNI 在Linux(Ubuntu 12.04)下的安装配置
- Java反射详解
- CC2540开发套件资料更新日志
- 黑马程序员_交通灯
- Hdu 1863 - 通畅工程
- VC下Release版出错,Debug版的不出错原因
- Ubuntu 11.10 通过配置vnc使windows可以远程桌面,自动启动
- hdu 1070 Milk