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

Posted zhi昕

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了小算法题,没地方记录,就记在这里了相关的知识,希望对你有一定的参考价值。

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);

以上是关于小算法题,没地方记录,就记在这里了的主要内容,如果未能解决你的问题,请参考以下文章

记录一次面试中二分查找的算法题

删除指定字符串的算法题,面试时候没做出来

PASCAL算法知识题~~高分~紧急~

算法,取反向整数,LeetCode

常见算法题合辑

美图笔试算法题(两个人拿石头判断输赢)