首页 > 代码库 > 小算法题,没地方记录,就记在这里了
小算法题,没地方记录,就记在这里了
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);
小算法题,没地方记录,就记在这里了