码迷,mamicode.com
首页 > 编程语言 > 详细

小算法题,没地方记录,就记在这里了

时间:2017-02-06 10:57:37      阅读:235      评论:0      收藏:0      [点我收藏+]

标签:ann   arrays   strong   while   new   ring   exti   common   out   

1、二分法

  int[] arr = {1,2,3,4,5,6,7,8,9,10};
  int key = 2;
  int min ,max ,mid;
  min = 0;
  max = arr.length-1;
  mid = (min+max)>>1;//(min+max)/2
  while (arr[mid]!=key){
    if(key>arr[mid]){
      min = mid+1 ;
    }else if(key<arr[mid]){
      max = mid -1;
    }
    if(max<min){
      return;
    }
    mid = (min+max)>>1;//(min+max)/2
  }
  System.out.println(mid);

2、冒泡排序  

  int[] arr1 = {21,14,56,2,5,16,27,83,9,10};
  int common ;
  for(int i=0;i<arr1.length;i++){
    for(int j=i+1;j<arr1.length;j++){
      if(arr1[i]<arr1[j]){
        common = arr1[i];
        arr1[i] = arr1[j];
        arr1[j] = common;
      }
    }
  }
  System.out.println(Arrays.toString(arr1));

3、求最大公约数、最小公倍数

  System.out.println("请输入第一个数字:");
  Scanner sc=new Scanner(System.in);
  int a = sc.nextInt();
  System.out.println("请输入第二个数字:");
  int b = sc.nextInt();
  int c ;
  int mul = 1;
  int num = 1 ;
  if(a>b){
    c=a;
    a=b;
    b=c;
  }
  for(int i=2;i<a;i++){
    if(a%i==0&&b%i==0){
      a=a/i;
      b=b/i;
      mul*=i;
      num = i;
    }
  }
  System.out.println("最小公倍数:"+a*b*mul);
  System.out.println("最大公约数:"+num);

小算法题,没地方记录,就记在这里了

标签:ann   arrays   strong   while   new   ring   exti   common   out   

原文地址:http://www.cnblogs.com/zxxshare/p/6369171.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!