1、数组的高级操作
基本查找;二分查找(数组元素按照大小排列);
(1)数组二分查找步骤:
1)定义两个变量,表示要查找的范围,默认min=0,max=最大索引;
2)循环查找,但min<=max;
3)计算出mid的值;
4)判断mid位置的元素是否为要查找的元素,如果是直接返回对应的索引;
5)如果查找的值在mid左半边,那么min值不变,max=mid-1;继续循环查找;
6)如果查找的值在mid右半边,那么max值不变,max=mid+1;继续循环查找;
7)min>max时,查找的元素不存在,返回-1;
案例分析:
(2)冒泡排序
冒泡排序:相邻的数组两两比较,小的放前面,大的放后面;
2、递归
方法定义中调用方法本身的状况
思想:把复杂的问题经过层层转换为与该问题相似的规模小的问题;只需要少量的程序就可描述出解题所需要的多次重复计算;
例子:1-1000的和;
递归解决问题需要看递归出口:是否会出现溢出;递归规则:与原问题相似的规模小的问题;
例子;
3、快排
思想:每次递归时以第一个数为基准数,找到数组中所有比基准小的数;再找到所有比基准数达的,小的放在左边,大的放在右边,确定基准数的正确位置;
整个排序过程
4、Arrays
概述和常用方法
Arrays类包含用于操作数组的各种方法;
方法名 | 说明 |
public static String toString(int[ ] a) | 返回指定数组的内容的字符串表示形式 |
public static void sort(int[ ] a) | 按照数字顺序排列指定数组 |
public static int binarySearch(int[ ] a,int key) | 利用二分查找返回指定元素索引 |