我们应该多去研究我们学的专业,并在前辈所总结的知识道理上挖掘出更深的知识。
超越前辈是一种社会主潮流。如果我们这一代比起前辈没有进步,那社会怎么发展。
本篇介绍一个特别有趣的算法——锦标赛算法,运用锦标赛算法可以更好的去找最大和第二大的数。
1、蛮力法找最大和第二大
我们在上一篇已经知道找最大和最小的算法,用蛮力法找最大和最小的T(n)是2n-3。同样的,用蛮力法找最大和第二大也是T(n)=2n-3。
我们来直接看代码
public static void main(String[] args) {
// TODO Auto-generated method stub
int a[]=new int[11];
Random random=new Random();
for(int i=0;i a[i]=random.nextInt(101); //随机生成10个0到100的数字 System.out.println("生成的结果是:"+Arrays.toString(a)); int secondmaxi = FindsecondMax2(a); System.out.println("第二大的数是:"+secondmaxi); } //蛮力法2 public static int FindsecondMax2(int a[]) { int max=-0x3f3f3f3f; int secondmax=-0x3f3f3f3f; for(int i=0;i if(max
{ secondmax=max; max=a[i]; }