问题描述:
本题要求编写程序,找出给定一系列整数中的最小值。
输入格式:
输入在一行中首先给出一个正整数n,之后是n个整数,其间以空格分隔。
输出格式:
在一行中按照“min = 最小值”的格式输出n个整数中的最小值。
输入样例:
4 -2 -123 100 0
输出样例:
min = -123
分析:
- 创建一个
Scanner
对象,用于接收用户的输入。 - 请求用户输入整数的数量
N
。 - 根据用户输入的整数数量
N
,创建一个整数数组arry
。 - 使用循环,请求用户输入
N
个整数,并将这些整数存储在数组arry
中。 - 初始化一个变量
min
为0,该变量用于存储当前找到的最小值的索引。 - 使用另一个循环,遍历数组
arry
中的每一个元素(从索引1开始,因为索引0已经在前面的初始化过程中被处理过了)。对于每一个元素,如果当前元素的值小于arry[min]
,则更新min
为当前元素的索引。 - 在循环结束后,
min
将会是数组中最小值的索引,然后打印出arry[min]
。
这个算法的复杂度是 O(n),其中 n 是输入整数的数量。这是因为算法遍历了所有的输入整数一次以找到最小值。
代码:
import java.util.Scanner;
public class Main{
public static void main(String args[]){
int N;
Scanner scan = new Scanner(System.in);
N = scan.nextInt();
int []arry = new int[N];
for(int i=0; i<N; i++){
arry[i] = scan.nextInt();
}
int min = 0;
for(int j=1; j<N; j++){
if(arry[j] < arry[min]) min = j;
}
System.out.println("min = "+arry[min]);
}
}