第二章 Java基本语法 讲师:复凡
数组中涉及的常见算法 1.求数组元素的最大值、最小值、平均数、总和等 2.数组的复制、反转 3.数组元素的排序
数组排序 插入排序 直接插入排序、折半插入排序、Shell排序 交换排序 冒泡排序、快速排序(或分区交换排序) 选择排序 简单选择排序、堆排序 归并排序 基数排序
排序方法的选择 (1)若n较小(如n≤50),可采用直接插入或直接选择排序。 当记录规模较小时,直接插入排序较好;否则因为直接选择移动的记录数少于直接插入,应选直接选择排序为宜。 (2)若文件初始状态基本有序(指正序),则应选用直接插入、冒泡或随机的快速排序为宜; (3)若n较大,则应采用时间复杂度为O(nlgn)的排序方法:快速排序、堆排序或归并排序。
冒泡排序 排序思想: 相邻两元素进行比较,如有需要则进行交换,每完成一次循环就将最大元素排在最后(如从小到大排序),下一次循环是将其它的数进行类似操作。
数组排序 java.util.Arrays类的sort()方法提供了数组元素排序功能: import java.util.*; public class Sort { public static void main(String[] args) { int [] number = {5,900,1,5,77,30,64,700}; Arrays.sort(number); for(int i = 0; i < number.length; i++) System.out.println(number[i]); }
操作数组的工具类:Arrays java.util.Arrays类包含了用来操作数组(比如排序和搜索)的各种方法。Arrays拥有一组static方法。 equals():比较两个array是否相等。array拥有相同元素个数 ,且所有对应元素两两相等。 fill():将值填入array中。 sort():用来对array进行排序。 binarySearch():在排好序的array中寻找元素。 另:System.arraycopy():array的复制。
数组操作常见问题 数组脚标越界异常(ArrayIndexOutOfBoundsException) 编译时,不报错!! 数组脚标越界异常(ArrayIndexOutOfBoundsException) int[] arr = new int[2]; System.out.println(arr[2]); 访问到了数组中的不存在的脚标时发生。 空指针异常(NullPointerException) int[] arr = null; System.out.println(arr[0]); arr引用没有指向实体,却在操作实体中的元素时。
0512-57882866 www.bcdaren.com 昆山爱达人 1250121864 昆山爱达人信息技术有限公司 视频录制: 视频提供 视频录制: 联系电话: 0512-57882866 官网地址: www.bcdaren.com 联系公众号: 昆山爱达人 联系QQ: 1250121864 编程达人APP: