JAVA算法:在给定的一维数组中找到最小的前3个数
问题描述:给定一个一维整型数组,写一个算法找到最小的前3个整数
举例:
给定整型数组 a = { 6, 8, 1, 9, 2, 10};
输出为: 1, 2, 6
给定整型数组 a = { 6, 8, 1, 9, 2, 1, 10, 10};
输出为: 1,1, 2
给定整型数组 a = {6};
输出为: Invalid Input, array size is less than 3
问题分析
给定一维整型数组,要找到其中最小的前3个数。不能使用Arrays类中的sort方法,需要自己写算法。
那么不妨先设置3个变量:first,second,third,假设其为整型的最大值:Integer.MAX_VALUE
设定一个当前用于进行比较的变量current;current的初始值取数组的第1个元素值。
之后随着循环比较(循环变量为i,0<i<数组的长度),current每次代表当前下标为 i 的数组元素。
这样,我们使用数组 a = { 6, 8, 1, 9, 2, 10} 进行推演比较过程。
推演过程
first,second,third的初始值均设置为最大:2147483647
当i=0时,取数组