面试题:如何找到一个数组中第三大数字并输出它所在的位置
延伸问题:如何找到一个数组中第N大元素并输出它所在的位置
public class FindThirdLarge {
public static void getThirdLargeNumber(int [] array,int nLarge){
int count = 0;//大于某个数字的个数
int location = 0;//参考值的索引
int referenceValue = 0;//参考值
boolean flag = true;//循环执行标志
while(flag){
referenceValue = array[location];
for(int i=0;i<array.length;i++){
if( (i!=location) && (array[i]>referenceValue) ){
count +=1;
}
}
if(count == (nLarge-1)){
flag = false;
System.out.println("第"+nLarge+"大数字是:"+referenceValue+";位置在:"+location);
}else{
count = 0;
location+=1;
flag = true;
}
}
}
public static void main(String[] args) {
int ar [] = {3,6,4,9,5,2,8};
getThirdLargeNumber(ar,3);
}
}
分享到:
相关推荐
- 初始时,假设数组的第一个元素是最大值,并将其位置赋值给`index`数组。 - 随后,每次发现更大的值时,都更新最大值和对应的`index`数组。 - 最终,`index`数组包含了最大值所在的位置。 3. **错误处理**: -...
本文将详细介绍一个原创的C语言算法实现,该算法能够有效地找到数组中的最大值及其索引,并通过理解这个过程来帮助读者掌握算法思想,从而能够灵活运用到其他类似问题上。 #### 算法描述 本算法的目标是在给定的...
首先在数组末尾添加一个0作为标记,然后对每个元素,将其移动到它应该所在的位置,即nums[i]=nums[nums[i]],这个过程称为“计数排序”的变种。当这个过程完成后,数组中索引和值相等的元素就是出现两次的,而索引和...
该代码实现了一个简单的功能,即找出一个给定的3x4矩阵中的最大值,并输出其值及所在的位置。 **例2:打印特定图案** ```c main() { char a[5] = {'*', '*', '*', '*', '*'}; int i, j, k; char space = ' '; ...
本实验旨在通过编写程序来找出一个给定矩阵(本例中为3×4)中的最大值,并确定该最大值所在的行号和列号。 ##### 实验步骤 1. **定义二维数组**:首先需要定义一个3×4的二维数组,用于存储矩阵数据。 2. **初始化...
3. **选择排序法**:选择排序是另一种基本的排序算法,它每次从未排序的部分中找到最小(或最大)元素,然后将其与未排序部分的第一个元素交换。这里同样定义了一个整数数组`a`,使用两个循环,外层循环确定基准位置...
从弹框中录入一个数字表示考试成绩(score) 如果 成绩为 100 分 ,提示 :满分 如果 成绩 >= 90 分 ,提示 :优 如果 成绩 >= 80 分 ,提示 :良 如果 成绩 >= 60 分 ,提示 :及格 否则 :提示 不及格 2、函数...
- 从两个数组的末尾开始,比较两个数组中的元素大小,将较大的元素放入第一个数组的末尾。 - 使用三个指针分别指向两个数组的末尾和第一个数组的当前位置。 **数据结构**: 数组 **时间复杂度**: O(m+n),其中 m 和...
代码中定义了一个10*10的二维数组`a`,但实际并未使用,因为这个任务只需控制输出即可,无需存储数据。 任务4:这个任务要求输入N个学生的信息,包括学号和三门科目的成绩,然后计算每个学生的平均成绩以及每门课的...
2. **查找最大值**:在一个二维数组中找到每行的最大值及其所在列的最小值: ```c for (i = 0; i ; i++) { int max_val = a[i][0], max_col = 0; for (j = 1; j ; j++) { if (a[i][j] > max_val) { max_val = a...
在这个问题中,我们有一个由数字构成的三角形,目标是从顶部到底部找到一条路径,使得经过的数字之和最大。通常,每次移动只能从当前所在行的一个数字移动到下一行的相邻数字。这种问题的解决方案通常是用C语言或...
本题目要求编写一个 Matlab 程序来找到一个二维数组中所有大于 0.5 的元素的位置。 8. 阶乘求和 本题目要求编写一个 Matlab 程序来计算 1!+2!+…+10! 9. 矩阵操作 本题目要求编写一个 Matlab 程序来找到矩阵 ...
找到合适的位置,即比`7`大的第一个元素之前。 2. 将所有比`new_item`大的元素向右移动一位。 3. 将`new_item`放入腾出的位置。 #### 1.3 排序字符串数组 - **排序字符串数组**:排序字符串数组与排序整数数组...
最后,我们分析了一个C++程序,用于统计输入的n个数字在[0,10000]范围内的频数,并将它们按照频数顺序输出。这个程序利用了memset函数初始化数组c,然后通过两层循环,第一层遍历0到9999,第二层根据每个数的频数将...
这道题目要求找出一组数字中满足其中一个数是另一个两倍的数对。解决此问题,可以采用双指针法或者哈希表。双指针法从最小的数开始,遍历数组,每次检查后续的数是否是当前数的两倍。哈希表法则是将数组中的每个数...
- 如果找到,则累加计数器,并继续搜索下一个位置。 #### 知识点十:斐波那契数列的特殊模式 - **描述**:给出一个100位的斐波那契数列,每10位打印一次。 - **实现思路**: - 生成斐波那契数列。 - 使用计数器...
2. **构建链表**:从数组第一个元素开始,依次创建节点并连接起来。 3. **返回链表头**:返回链表的头节点。 ##### 实验2.2:单链表的查找、包含、删除操作 **实验目的:** 实现单链表的查找、包含和删除操作。 *...
- **Kruskal算法**:按边的权重从小到大排序,依次考虑每条边,如果这条边连接的两个顶点还没有在同一个集合中,则将这条边加入到最小生成树中,并将这两个顶点所在的集合合并。 由于文件没有给出具体的实现细节,...
22. 编写程序,设计一个函数计算从 3 到 n 之间所有素数的平方根之和并返回,在主函数中输入一个整数,调用这个函数,并输出: 这道题目考查了函数调用和循环语句的使用。解决思路是使用函数调用来计算素数的平方根...
本题要求找到所有满足条件的三位数,即该数等于它的各位数字的立方和,并找出其中最大的一个。 知识点: * 数学证明 * 算法设计 * 数据结构(数组) 题号 3:冒泡排序 本题要求使用冒泡法对 10 个整数进行升序...