找出一个数组中的第N大数
2018-03-18 22:00
183 查看
问题:找出一个数组中的第N大数,该数组可能为空,数字也可能重复,例如:{1,1,2,2,3,3,4,4};
请写出代码找出第N大数。(本例第二大数为3)
请写出代码找出第N大数。(本例第二大数为3)
void find_N_max(int a[], int len, int N) { if (NULL == a) { printf("数组为空\n"); return; } for (int i = 0; i < len - 1; i++) { for (int j = 0; j < len-i-1; j++) { if (a[j] < a[j+1]) { int tmp = a[j]; a[j] = a[j+1]; a[j+1] = tmp; } } } int count = 1; for (int i = 0; i < len - 1; i++) { if (a[i+1] < a[i]) count++; if (count == N) { printf("第%d大数为%d\n", N, a[i+1]); return; } } printf("不存在第%d大数\n", N); }
相关文章推荐
- 找出一个整数数组中的第二大数
- 快速找出一个数组中的最大数、第二大数。
- C++通过自定义函数找出一个整数数组中第二大数的方法
- [基础题]1.快速找出一个数组中的最大数、第二大数。
- 快速找出一个数组中的最大数和第二大数
- 写一个函数,找出一个整数数组中的第二大数
- Linux_C练习:快速找出一个数组中的最大数、第二大数。(笔试题)
- 如何快速找出一个数组中最大数和第二大数
- java找出一个数组中出现次数最多的那个元素
- signal num一个int数组,里面数值都是成对出现,只有一个是单独的,找出单独者。360ms
- 关于面试常见的一个数组中找出出现一次的几个数字的问题
- 在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。
- 求一个数组中第二大数...
- 典型的Top K算法_找出一个数组里面前K个最大数
- 找出数组里面任意两个数相加等于一个值k?
- 给定一个数组,按序排列,从数组找出若干个数,使得这若干个数字的和与M最为接近,(背包问题)
- 在数组中找出一个数,这个数>=它前面的所有数,<它后面的所有数
- 一个既有负数又有正数的升序数组中,找出其绝对值最小的数
- 【算法】(遇到的问题)给定一个数组,找出不在数组中的最小的那个数字
- 程序员面试金典——解题总结: 9.17中等难题 17.6给定一个整数数组,编写一个函数,找出索引m和n,只要将m和n之间的元素排好序,整个数组就是有序的。注意:n - m越小越好,也就是说,找出