一、排序算法
1、冒泡排序
每次把相邻两个数进行比较 ,一轮下路能够把一个最大值放到最后 长度为n 则需要比较n-1轮
代码实现
for(int i=0; i<arr.length-1; i++){ //需要比较 n-1轮
for(int j=0; j<arr.length-1-i; j++){ //每次都是相邻两个比较
if(arr[j]>arr[j-1]){
int temp = arr[j+1];
arr[j+1] = arr[j];
arr[j] = temp;
}
}
}
二、查找算法
1、折半查找
折半查找前提是有序, 通过把要查找的值与中间值对比 大就去中间值右边开始找 ,如果小于则去中间值左边去查找
代码实现
public class MidSearch {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int [] num = {1,5,6,7,8,11,15,18};
System.out.print("请输入你要查找的数:");
int target = scanner.nextInt();
int right = num.length-1; //右边界
int left = 0; //左边界
int index=0;
//可以提前判断一下
if( target <num[0] || target > num[num.length-1]){
System.out.println("你要查找的数不在范围之内");
}else{
while(left <=right){
index = -1; //没有找到就返回 -1
int mid = (right +left)/2;
if(target <num[mid]){
right = mid-1;
}else if(target >num[mid]){
left = mid+1;
}else{
index = mid ;
break;
}
}
if(index >-1){
System.out.println("找到了,下标为:"+index);
}else{
System.out.println("没有你要找的数");
}
}
}
}
三、二维数组
所谓二维数组,就是数组里头放数组 因为数组中数据类型可以是基本数据类型 也可以是引用数据类型
八种基本数据类型:short 、int、double、float、long、char、boolean、String
引用数据类型:数组、对象引用数据类型值就只有两种 要么为null
,要么是内存地址
1、杨辉三角
代码实现
public class YangHui {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入要打印的行数:");
int n = scanner.nextInt();
int [][] arr = new int [n][n];
for(int i=0; i<arr.length;i++){
//这里其实可以使用 arr.length 因为是等大的
for(int j=0;j<arr[i].length;j++){
if(i==0 || i==j || j==0){
arr[i][j] = 1;
}else{
arr[i][j] = arr[i-1][j-1] + arr[i-1][j];
}
}
}
for (int i=0; i<arr.length; i++){
for(int j=0;j<=i; j++){
System.out.print(arr[i][j]+"\t");
}
System.out.println();
}
}
}