在一个数组里面找出最小的两个数
找出数组中最小的两个数,在一次遍历中就可以实现,m1来表示最小的值,m2表示出现次小的值
代码如下:
import java.util.Scanner; public class FindTwoLow { public static void main(String []args){ //find two lowest int[] arr={5,4,6,3,9,12,35,42,18,29,30}; int m1,m2;//存储两个最小值 m1=arr[0]; m2=arr[0]; for(int i=0;i<arr.length;i++){ if(arr[i]<m1){ m2=m1; m1=arr[i]; }else if(arr[i]<m2){ m2=arr[i]; } } System.out.println(m1+","+m2); } }
思路:第一个判断用来保存最小值,第二个判断用来保存次小值,当出现比m1小的数的时候,把之前m1的值给m2,更新m1;
当第一个条件不满足,才会去判断第二个条件,为的是怕当前arr[i]比次小值小,所以对其判断下。如此一来 当数组遍历一遍后,就找到了最小值 m1次小值m2;