java学习心得 5 数组中涉及的常见算法---杨辉三角,二分法查找部分
程序员文章站
2022-04-30 22:49:08
...
数组中涉及的常见算法
- 数组元素的赋值(杨辉三角等)
- 求数值型数组中元素的最大值、最小值、平均数、总和等
- 数组的复制、反转、查找(线性查找、二分法查找)
- 数组元素的排序算法
杨辉三角
思想:打印空格字符串
public class YangHuiSanJiao {
public static void main(String[] args) {
int rows = 10;
for(int i = 0;i < rows;i++) {
int number = 1;
//打印空格字符串
System.out.format("%"+(rows-i)*2+"s","");
for(int j = 0;j <= i;j++) {
System.out.format("%4d", number);
number = number * (i - j) / (j + 1);
}
System.out.println();
}
}
}
结果展示
二分法查找算法
思想:折中的查找元素
public class ErFenFaChaZhao {
public static void main(String[] args) {
int[] arr = new int[]{-99,-54,-2,0,2,33,43,256,999};
boolean isFlag = true;
// int number = 256;
int number = 25;
int head = 0;//首索引位置
int end = arr.length - 1;//尾索引位置
while(head <= end){
int middle = (head + end) / 2;
if(arr[middle] == number){
System.out.println("找到指定的元素,索引为:" + middle);
isFlag = false;
break;
}else if(arr[middle] > number){
end = middle - 1;
}else{//arr3[middle] < number
head = middle + 1;
}
}
if(isFlag){
System.out.println("未找到指定的元素");
}
}
}
结果展示