day07 数组(2)
数组中常见的算法使用
数组的定义及元素的赋值
-
杨辉三角
-
回形数
-
创建一个长度为6的int型数组,要求数组元素的值都在1-30之间,且是随机赋值。同时,要求元素的值各不相同。
数值类型数组中特殊值的计算
-
求数值型数组中元素的最大值、最小值、平均数、总和
数组的反转、复制、遍历、查找等
二分法查找
数组的排序
衡量排序算法的优劣:
时间复杂度:分析关键字的比较次数和记录的移动次数
2.空间复杂度:分析排序算法中需要多少辅助内存
3.稳定性:若两个记录A和B的关键字值相等,但排序后A、B的先后次序保持不变,则称这种排序算法是稳定的。
排序算法分类:内部排序和外部排序。
内部排序:整个排序过程不需要借助于外部存储器(如磁盘等),所有排序操作都在内存中完成。
外部排序:参与排序的数据非常多,数据量非常大,计算机无法把整个排序过程放在内存中完成,必须借助于外部存储器(如磁盘)。外部排序最常见的是多路归并排序。可以认为外部排序是由多次内部排序组成。
十大内部排序算法
-
选择排序:直接选择排序、堆排序
-
交换排序:冒泡排序、快速排序
-
插入排序:直接插入排序、折半插入排序、Shell排序
-
归并排序
-
桶式排序
-
基数排序
最好能手写实现的排序方式:冒泡排序、快速排序
能说清楚排序实现原理的:堆排序、归并排序
各种排序算法的时间复杂度、空间复杂度、稳定性的情况
其他算法
待补充
Arrays工具类
java.util.Arrays类中的方法:
-
-
String toString(int[] a) 输出数组信息
-
void fill(int[] a,int val) 指定值填充到数组(数组中所有数变成val)
-
void sort(int[] a) 对数组进行排序
-
int binarySearch(int[] a,int key) 对排序后的数组进行二分法检索指定的值
数组中的常见异常
-
数组脚标越界异常(ArrayIndexOutOfBoundsException)
int[] arr = new int[2];
System.out.println(arr[2]);
System.out.println(arr[-1]);
-
空指针异常(NullPointerException)
int[] arr = null;
System.out.println(arr[0]);

浙公网安备 33010602011771号