package com.atguigu.java;
//二分法查找
//前提:数组必须是有序的
public class ArrayTest3 {
public static void main(String[] args) {
int[] arr = new int[] { 1, 3, 4, 5, 7, 9, 44, 556, 778, 9999 };
int dest = 79;
int start = 0;
int end = arr.length - 1;
boolean isFlag = true;
while (start < end) {
int middle = (start + end) / 2;
if (arr[middle] == dest) {
System.out.println("找到了:" + middle);
isFlag = false;
break;
} else if (arr[middle] > dest) {
end = middle - 1;
} else {
start = middle + 1;
}
}
if (isFlag) {
System.out.println("没找到");
}
}
}
package com.atguigu.java;
//冒泡排序:
public class BubbleSortTest {
public static void main(String[] args) {
int[] arr = new int[] { 3, 34, 0, 8, 99, 54, 5, 999 };
// 冒泡排序
// 理解:从最开始的元素开始,两个之间互相比较大小,符合要求就不变,
// 不符合要求就交换,一直到最后一个,所以第一轮会筛选出整个数组的最大值(降序排列为例)
// 选出最大值之后,继续进行第二轮,此时我们已经选择出了最大值,现在需要选择第二大的值,
// 还是从第一个值开始,相邻两个元素继续开始比较,直到选出最大一项,
// 以数组arr为例,实现冒泡排序:
for (int i = 0; i < arr.length - 1; i++) {// 共需要比较arr.length -
// 1轮,最后一个是不用比较的。
for (int j = 0; j < arr.length - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + "\t");
}
}
}
package com.atguigu.java;
import java.util.Arrays;
//Arrarys类:提供了许多方法,都可以在API文档中查找到。
//java.util.Arrarys:操作数组的工具类,定义了很多操作数组的方法。
public class ArraysTest {
public static void main(String[] args) {
// boolean equals(int[] a,int[] b);判断两个数组是否相等
double[] a = new double[] { 1, 2, 2 };
double[] b = new double[] { 1, 2, 2 };
boolean result = Arrays.equals(a, b);
System.out.println(result);
// String toString(int[] a):输出数组的信息,就不用和之前一样逐个遍历了。
String result1 = Arrays.toString(a);
System.out.println(result1);
// void fill(int[] arr,int val);将指定值填充到指定的数组中去。
int[] arr = new int[] { 33, 14, 3, 4 };
Arrays.fill(arr, 2);
System.out.println(Arrays.toString(arr));
// void sort(int[] a);对数组进行排序
int[] arr1 = new int[] { 33, 14, 3, 4 };
Arrays.sort(arr1);
System.out.println(Arrays.toString(arr1));
// int binarySearch(int[] a,int b);//二分法查找
int result3 = Arrays.binarySearch(arr1, 14);
System.out.println(result3);
}
}