蚂蚁算法

来源:互联网 发布:《算法的乐趣》 编辑:程序博客网 时间:2024/05/17 08:36
public class 蚂蚁算法 {/*** 有n个蚂蚁每秒速度在Lcm的杆子上爬行,蚂蚁到杆子端点就会掉下去,蚂蚁相遇,交错通过,只能各自反方向爬回去,* 对于每只蚂蚁我们知道它离杆子左端的距离是Xi,但是不知道它当时的朝向,请计算所有蚂蚁落下杆子所需要的最短时间和* 最长时间* @param args*/    public static void main(String[] args) {  System.out.println("请输入杆子多长");  Scanner input=new Scanner(System.in);  int length=input.nextInt();  System.out.println("请输入有n只蚂蚁");  int n=input.nextInt();  System.out.println("请输入n只蚂蚁离左端的距离");  int [] a=new int[n];  for(int i=0;i<n;i++){  a[i]=input.nextInt();  }  solve(a,length);  a=Util.selectSort(a);  for(int b:a){  System.out.println(b+"\t");  }//   System.out.println("result"+Util.middleSort(6, a));  System.out.println(Util.isValueByMiddle(6, a));}    public static void solve(int[] a,int length){    int max=0,min=0;    //求最短的时间    for(int i=0;i<a.length;i++){    min=Util.maxValue(min, Util.minValue(a[i],length-a[i]));    }    //求最长的时间    for(int i=0;i<a.length;i++){    max=Util.maxValue(max, Util.maxValue(a[i], length-a[i]));    }    System.out.println("max"+max+"\tmin"+min);    }}

0 0
原创粉丝点击