需求:
定义一个数组 数组值 分别 3,6,11,22
在数组中查找11的位置
public static void main(String[] args) {
int[] array = new int[]{3,6,11,22};
int key = 11;
for (int i = 0; i < array.length - 1; i++) {
if (key == array[i]) {
System.out.println(i);
}
}
}
需求:随机10个数 随机的区间为[15,150]
1.把这个10个数放入数组中
2.打印最大值、最小值
public static void main(String[] args) {
int[] newArray = new int[10];
for(int i = 0;i < 10; i++){
int num = (int)(Math.random()*(150-15+1) + 15);
newArray[i] = num;
}
// 声明最大 最小值
int max = 0;
int min1 = newArray[0];
// 遍历数组
for(int i = 0; i < newArray.length; i++) {
if(max < newArray[i]) {
max = newArray[i];
}
if(min1 > newArray[i]) {
min1 = newArray[i];
}
}
// 打印结果
System.out.println("max ="+max);
System.out.println("min ="+min1);
// 利用系统方法 将数组转化为字符串输出
// 一般带s的类 都是 该类的工具类
System.out.println(Arrays.toString(newArray));
}
冒泡排序
核心思想:相邻两个数比较 换位
public static void main(String[] args) {
int[] array = {3,2,5,1};
/*
* 外循环 控制一共比了多少趟
* 内循环 控制一共比了多少次*/
for(int i = 0;i < array.length - 1;i++){
for(int j = 0;j < array.length - 1- i ;j++){
//判断大小 相邻
//内循环-1 防止数组越界
//内循环-i 循环一次 确定一个数 每次都少比一次
if (array[j] >array[j + 1]) {
//交换
int temp = array[j];
array[j] = array[j+1];
array[j+1] = temp;
}
}
}
System.out.println(Arrays.toString(array));
}
选择排序
核心思想:选择一个数(选第一个数)和其他的数进行比较 交换
public static void main(String[] args) {
int[] array = {3,2,5,1};
for (int i = 0; i < array.length - 1; i++) {
for (int j = 1 + i; j < array.length; j++) {
//用第0个数 和剩下的每一个数比较
//量化思维
//i = 0 j 1 2 3...
//i = 1 j 2 3
//i = 2 j 3
if (array[i] > array[j]) {
//交换
int temp = array[j];
array[j] = array[i];
array[i] = temp;
}
}
}
System.out.println(Arrays.toString(array));
}