什么是算法?
解决某个实际问题的过程和方法。
排序算法
1.冒泡排序
打印结果:
2.选择排序
打印结果:
优化选择排序:因为每一轮都需要以当前位置为基准与后面元素比较,太过繁琐,所以可以找到后面元素中较小值的索引,直接将找到的比当前小的最小值的索引拿出来,与当前索引的值调换位置即可。代码如下:
查找算法
二分查找
最好通过一个方法来完成!
public class Test3 {public static void main(String[] args) {//1.准备好一个数组int[] arr = {7, 23, 79, 81, 103, 127, 131, 147};System.out.println(binarySearch(arr, 81));}public static int binarySearch(int[] arr, int data) {//1.定义两个变量一个在最左边位置,一个在最右边位置int left = 0;int right = arr.length - 1;//2.定义一个循环控制折半while (left <= right) {//3.每次折半,都算出中间位置处的索引int middle = (left + right) / 2;//4.判断当前要找的元素值,与中间位置处的元素值的大小情况if (data < arr[middle]) {//往左边找,截至位置(右边) = 中间位置 - 1right = middle - 1;} else if (data > arr[middle]) {//往右边找,起始位置(左边) = 中间位置 + 1left = middle + 1;} else {return middle;}}return -1;//-1特殊结果,代表没有找到数据!数据不存在该数组!}
}
输出结果:3
Arrays类提供的Arrays.binarySeareh()方法
底层原理: