try块、catch块时遇到了return或throw语句
当Java程序执行try块、catch块时遇到了return或throw语句,这两个语句都会导致该方法立即结束,但是系统执行这两个语句并不会结束该方法,而是去寻找该异常处理流程中是否包含finally块,如果没有finally块,程序立即执行return或throw语句,方法终止;如果有finally块,系统立即开始执行finally块。只有当finally块执行完成后,系统才会再次跳回来执行try块、catch块里的return或throw语句;如果finally块里也使用了return或throw等语句,finally块会终止方法,系统将不会跳回去执行try块、catch块里的任何代码。
排序的时间复杂度、空间复杂度、稳定性、复杂性
归并排序稳定性:每次都是从左半部份开始归并,当左半部份与右半部份的关键字相等时,左半部份优先,所以归并排序的算法是稳定的。
选择排序的思想:从n个元素选出最大(最小)的元素,把它调到序列的首端(尾端),再从剩下的n-1个元素继续选出最大(最小)的元素…反复操作,直到只剩1个元素。由于选择排序的交换是跳跃式进行的,所以不稳定。
快速排序的思想:找一个记录作为关键字枢纽,小于枢纽的记录移到该关键字枢纽之前,大于枢纽的移到关键字之后,然后对分割的两个子序列进行递归操作,也属于跳跃式进行,所以不稳定。。
希尔排序:将待排序的数列分成若干个子序列,分别对子序列进行插入排序,逻辑子序列的交换跨度比较大,跳跃式的进行,所以不稳定。
一个类的构造器可以调用这个类中的其他构造器
this()和super()都是构造器,this()调用本类构造器,super()调用父类构造器
堆排序的方式原地进行升序排列
堆排序是简单优化排序的优化版,优于简单选择排序。
将整数数组(7-6-3-5-4-1-2)按照堆排序的方式原地进行升序排列,请问在第一轮排序结束之后,数组的顺序是_____。