练习

一维数组线性查找法

public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int[] array = {11,23,234,12,3,45,21,233,23,32,123,321};
System.out.println("请输入您要查找的数:");
int num = input.nextInt();
int index = -1;
for (int i = 0; i < array.length; i++) {
if(array[i]==num){
index = i+1;
break;
}
}
if(index!=-1){
System.out.println("find 在数组中的第"+index+"个位置");
}else{
System.out.println("not find!");
}
}

一维数组线性查找法(求最大值和最小值)

public static void main(String[] args) {
int[] array = {11,23,234,12,3,45,21,233,23,32,123,321};
int max = array[0];
int min = array[0];
for (int i = 0; i < array.length; i++) {
if(array[i]>max){
max = array[i];
}
if(array[i]<min){
min = array[i];
}
}
System.out.println("最大值:"+max);
System.out.println("最小值:"+min);
}

二分查找法(数组的值必须是有序的)

public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("请输入一个数:");
int num = input.nextInt();
int[] array = {1,2,3,4,5,6,7,8,9,0};
int index = -1;
int start = 0;
int end = array.length-1;
int middle;
while(start<=end){
//找到中间数的下标
middle = (start+end)/2;
if(num==array[middle]){
index = middle;
break;
}
if(num>array[middle]){
start = middle+1;
}
if(num<array[middle]){
end = middle-1;
}
}
if(index!=-1){
System.out.println("find 在数组中的第"+(index+1)+"个位置。");
}else{
System.out.println("not find!");
}
}

冒泡排序法

public static void main(String[] args) {
int[] array = {11,23,234,12,3,45,21,233,23,32,123,321};
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array.length-1; j++) {
if(array[j]>array[j+1]){
int temp = array[j];
array[j]=array[j+1];
array[j+1]=temp;
}
}
}
for (int i = 0; i < array.length; i++) {
System.out.print(array[i]+" ");
}
}
冰冻三尺,并非一日之寒
原文地址:https://www.cnblogs.com/qjwcf/p/12856497.html