day07 数组(2)

数组(2)

数组中常见的算法使用

数组的定义及元素的赋值

  • 杨辉三角

  • 回形数

  • 创建一个长度为6的int型数组,要求数组元素的值都在1-30之间,且是随机赋值。同时,要求元素的值各不相同。

数值类型数组中特殊值的计算

  • 求数值型数组中元素的最大值、最小值、平均数、总和

数组的反转、复制、遍历、查找等

二分法查找

数组的排序

 衡量排序算法的优劣:
 时间复杂度:分析关键字的比较次数和记录的移动次数
 2.空间复杂度:分析排序算法中需要多少辅助内存
 3.稳定性:若两个记录A和B的关键字值相等,但排序后A、B的先后次序保持不变,则称这种排序算法是稳定的。
 
 排序算法分类:内部排序和外部排序。
 内部排序:整个排序过程不需要借助于外部存储器(如磁盘等),所有排序操作都在内存中完成。
 外部排序:参与排序的数据非常多,数据量非常大,计算机无法把整个排序过程放在内存中完成,必须借助于外部存储器(如磁盘)。外部排序最常见的是多路归并排序。可以认为外部排序是由多次内部排序组成。
十大内部排序算法
  • 选择排序:直接选择排序、堆排序

  • 交换排序:冒泡排序快速排序

  • 插入排序:直接插入排序、折半插入排序、Shell排序

  • 归并排序

  • 桶式排序

  • 基数排序

 最好能手写实现的排序方式:冒泡排序、快速排序
 能说清楚排序实现原理的:堆排序、归并排序
各种排序算法的时间复杂度、空间复杂度、稳定性的情况

其他算法

待补充

Arrays工具类

java.util.Arrays类中的方法:

  • boolean equals(int[] a,int[] b) 判断两个数组是否相等

  • 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]);

 

posted @ 2021-03-11 10:10  阿年不想做人  阅读(44)  评论(0)    收藏  举报