从向量中获取最大元素的Java程序
先决条件: Java中的向量
为什么我们使用矢量?
到现在为止,我们已经学习了两种声明方式,一种是使用固定大小的数组声明,另一种是根据用户的需求根据内存中分配的数组大小来进行声明。
int Array_name[Fixed_size] ;
int array_name[variable_size] ;
引入了两种浪费内存的方法,以便正确利用内存优化向量。
使用向量的优势
- 动态尺寸
- 丰富的库函数
- 容易知道的尺寸
- 无需传递大小
- 可以从函数返回
- 默认使用默认值初始化
丰富的库函数包括
- 查找元素
- 擦除元素
- 插入元素
在这里,我们使用丰富的库函数来获取最大元素。
注意:数组始终作为数组中的指针传递,因此您必须传递数组大小的另一个参数,但在向量的情况下不需要。
句法 :
在数组的情况下
type function_Name(type arrayName[], type sizeOfArray) ;
在向量的情况下
type function_Name(vector vectorName) ;
考虑给定向量的示例,任务是找到最大元素。
例子:
Input: v1={1,2,3,4,5}
Output: 5
Input: v2={7,50,0,67,98}
Output: 98
方法 1:使用预定义函数
- 首先,我们将初始化一个向量,比如 v,然后我们将在该向量中存储值。
- 之后,我们将调用类Java.util.Collections中定义的名为max()的预定义方法。
- 打印最大元素。
下面是上述方法的实现。
Java
// Java Program to find maximum element
// in a vector using predefined method
import java.io.*;
// Importing Vector Class
import java.util.Collections;
// Importing Vector Class
import java.util.Vector;
class GFG {
// Main Method
public static void main(String[] args)
{
// initializing a Vector
Vector v = new Vector();
// adding values to the Vector
v.add(7);
v.add(50);
v.add(0);
v.add(67);
v.add(98);
// finding the largest element
int n = Collections.max(v);
// printing the largest element
System.out.println(
"The maximum value present in Vector is : "
+ n);
}
}
Java
// Java program to find largest element
// present in Vector via comparison
import java.io.*;
// Importing Vector Class
import java.util.Vector;
// Importing Iterator Class
import java.util.Iterator;
class GFG {
// Main Method
public static void main(String[] args)
{
// initializing vector of Integer type
Vector v = new Vector();
// Adding elements in vector
v.add(1);
v.add(2);
v.add(3);
v.add(4);
v.add(5);
// Assigning min value possible
int maxValue = Integer.MIN_VALUE;
// Creating an iterator to traverse through vector
// in the beginning itr will point to index just
// before first element
Iterator itr = v.iterator();
// See if there is any next element
while (itr.hasNext())
{
// Moving iterator to next element
int element = (Integer)itr.next();
// Comparing if element is larger than maxValue
if (element > maxValue)
{
// Update maxValue
maxValue = element;
}
}
// Print maxVaue
System.out.println(
"The largest element present in Vector is : "
+ maxValue);
}
}
输出 :
The maximum value present in Vector is : 98
最坏情况时间复杂度:O(n) ,其中 n 是向量中存在的元素数。
方法 2:比较 Vector 中存在的每个元素
- 首先,我们将初始化一个向量,比如 v,然后我们将在该向量中存储值。
- 接下来,我们将采用一个变量,让我们说maxNumber并分配可能的最小值。
- 遍历到向量的末尾并将向量的每个元素与 maxNumber 进行比较。
- 如果向量中存在的元素大于 maxNumber,则将 maxNumber 更新为该值。
- 打印 maxNumber。
下面是上述方法的实现。
Java
// Java program to find largest element
// present in Vector via comparison
import java.io.*;
// Importing Vector Class
import java.util.Vector;
// Importing Iterator Class
import java.util.Iterator;
class GFG {
// Main Method
public static void main(String[] args)
{
// initializing vector of Integer type
Vector v = new Vector();
// Adding elements in vector
v.add(1);
v.add(2);
v.add(3);
v.add(4);
v.add(5);
// Assigning min value possible
int maxValue = Integer.MIN_VALUE;
// Creating an iterator to traverse through vector
// in the beginning itr will point to index just
// before first element
Iterator itr = v.iterator();
// See if there is any next element
while (itr.hasNext())
{
// Moving iterator to next element
int element = (Integer)itr.next();
// Comparing if element is larger than maxValue
if (element > maxValue)
{
// Update maxValue
maxValue = element;
}
}
// Print maxVaue
System.out.println(
"The largest element present in Vector is : "
+ maxValue);
}
}
输出 :
The largest element present in Vector is : 5
时间复杂度:O(n) ,其中 n 是向量中存在的元素数。