接口
package test;
public interface FindTopValues
{
int findMaxValue(int[] anyOldOrderValues);
int[] findTopNValues(int[] anyOldOrderValues, int n);
}
以下是实现实例:
public class TestCases implements FindTopValues {
//冒泡排序,逆序,最大的在前面
@Override
public int findMaxValue(int[] anyOldOrderValues) {
int result = 0;
for (int i = 0; i < anyOldOrderValues.length; i++) {
for (int j = 0; j < anyOldOrderValues.length - i - 1; j++) {
if (anyOldOrderValues[j] < anyOldOrderValues[j + 1]) {
result = anyOldOrderValues[j];
anyOldOrderValues[j] = anyOldOrderValues[j + 1];
anyOldOrderValues[j + 1] = result;
}
}
}
return anyOldOrderValues[0];
}
@Override
public int[] findTopNValues(int[] anyOldOrderValues, int n) {
int[] result = new int[n];
//此处可以重新写一个冒泡排序,也可以调用上面的方法
//貌似不对啊??每次调用冒泡排序,得到的不都是最大值吗???何谓前n个最大呢??
for(int i =0;i<n;i++){
result[i]=findMaxValue(anyOldOrderValues);
}
return result;
}
}
使用数组Arrays自带的排序功能
public interface FindTopValues {
int findMaxValue(int[] anyOldOrderValues);
int[] findTopNValues(int[] anyOldOrderValues, int n);
}
class myFind implements FindTopValues{
public int findMaxValue(int[] anyOldOrderValues) {
Arrays.sort(anyOldOrderValues);
return anyOldOrderValues[anyOldOrderValues.length-1];
}
public int[] findTopNValues(int[] anyOldOrderValues, int n) {
Arrays.sort(anyOldOrderValues);
int[] reslut=new int[n];
for (int i = 0; i < n; i++) {
try {
reslut[i]=anyOldOrderValues[anyOldOrderValues.length-1-i];
} catch (RuntimeException e) {
e.printStackTrace();
}
}
return reslut;
}
}
分享到:
相关推荐
本文将探讨如何使用分治策略来解决一个特定的问题——在一个包含n个整数的数组中找到第二大的元素。 #### 分治算法原理 分治(Divide and Conquer)是一种重要的算法设计策略,它通过递归地将一个问题分解成两个或...
这个修正后的程序现在能够正确处理10个无序整数,找出最大值和最小值及其在数组中的位置。在实际编程中,我们还需要添加错误处理,例如检查用户是否输入了10个整数,以及处理可能的输入错误。然而,对于这个基础示例...
在一个数组中找出连续元素的最大值,时间复杂度o(n),空间复杂度o(n)
本文将详细介绍如何通过编写Java程序,在一个二维数组中查找最大值及其位置。本程序适用于任何大小的数组,并能准确地返回最大值所在的行和列索引。 #### 程序结构分析 1. **类与方法定义**: - 定义了一个名为`...
在编程领域,数组是数据结构的基础,而查找数组中的最大值是常见的操作,尤其是在算法分析和数据处理中。本文将详细讲解如何在C语言中实现这个功能,以及它背后的逻辑和相关知识点。 首先,理解数组的基本概念至关...
编写一个在具有m行n列的二维数组各元素中找出最大元和最小元并显示在屏幕上的函数模板,并通过主函数对它进行调用以验证其正确性。例如,可设计该函数模板的原型为: template <class Type> void maxMin (Type *A,...
6. **编程实践**:在实际编程中,我们还需要考虑错误处理,例如验证输入是否有效,以及数组元素数量是否足够找出第K个最大/最小值。此外,为了提高效率,可以采用更高级的算法,比如二分查找或者快速选择。 7. **...
在数组\( A[1..n] \)中找出最大值与次最大值,这里的操作仅考虑元素间的比较。 #### 1.2 算法描述 给出的算法是一种基于单次遍历的方法来确定数组中的最大值与次最大值。 **伪代码**: ```c void CZ_max(datatype ...
数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和。 求所有子数组的和的最大值。要求时间复杂度为O(n)。 例如输入的数组为1, -2, 3, 10, -4, 7, 2, -5,和最大的子数组为3, 10, -4, 7, 2, 因此...
在这个特定的案例中,我们关注的是如何在给定的数组中找出最大的元素,这是一个非常常见的算法问题。 标题 "找数组中的最大项_C-C++_" 指出,我们要讨论的是一种用 C 或 C++ 实现的算法,其目的是在数组中寻找最大...
本文将详细介绍如何使用 Linux Shell 来找出一个包含多个一维数组的多维数组中的最大值和最小值。 #### 核心知识点: 1. **Shell 数组的定义与使用** 2. **Shell 脚本中的循环结构** 3. **条件判断与变量赋值** 4....
以下是一个基本的Java代码示例来找出二维数组中的鞍点: ```java public class Main { public static void findSaddlePoint(int[][] matrix) { int rows = matrix.length; int columns = matrix[0].length; ...
在编程领域,数组是最基本的数据结构之一...总的来说,找出数组的最大值和最小值是编程基础中的基础,理解并掌握这些基本操作对于解决更复杂的算法问题至关重要。在不同的编程语言和应用场景中,选择合适的方法是关键。
*功能:从两个排好序的数组A[1..m]、B[1..n]中 *找出第K大的元素。 *时间复杂度为O(lg(m)+lg(n))
总之,通过使用嵌套循环和条件判断,我们可以轻松地在C++中找出二维数组中的最大值和最小值。这个方法简单易懂,适用于各种规模的二维数组,且能有效帮助初学者理解数组操作和条件控制结构在实际编程中的应用。
输入n个互不相同的整数并存在数组中,找出最大元素,并删除
本文将详细介绍一个原创的C语言算法实现,该算法能够有效地找到数组中的最大值及其索引,并通过理解这个过程来帮助读者掌握算法思想,从而能够灵活运用到其他类似问题上。 #### 算法描述 本算法的目标是在给定的...
**题目描述:** 找出数组中两个元素之间的最小距离。 **解析:** 为了高效解决这个问题,可以先对数组进行排序,然后遍历数组,依次比较相邻元素的距离,取最小值。这种方法的时间复杂度为O(n log n),其中排序占...
数组a中已存有互不相同的10个整数从键盘输入一个整数,找出与该值相同的数组元素下标。 (如果没找到,输出“没找到”).c
当我们需要找出数组中的最大值和最小值时,通常会遍历整个数组,比较每个元素与当前已知的最大值和最小值,以此来确定它们的位置。在实际应用中,可能还需要记录这些最大值和最小值所在的行号和列号,特别是在二维...