JAVA专项练习
解析:排序过程就是进行比较和交换过程,而时间复杂度就与比较和交换的次数相关。 解析:二维数组为4*3,可表示为 1 0 0 3 2 0 6 7 8 9 0 0 因为数组的起始位置为a[0][0],所以a[2][1]为第三行第二列,即7。 解析:递归工作栈里面包括返回地址、本层的局部变量和递归调用的形参代换用实参,所以正常情况下,无论递归过程有没有使用局部变量,转换为非递归过程都需要用栈来模拟这个递归调用过程。 不稳定:快选堆希 稳 定:插冒归基 归并排序的平均时间复杂度为O(nlogn), 其他三个排序的平均时间复杂度为O(n^2) 快速排序、归并排序和插入排序必须等到整个排序结束后才能够求出最小的 10 个数,而堆排序只需要在初始堆的基础上再进行 10 次筛选即可,每次筛选的时间复杂度为 O(log2n) 外部排序指的是大文件的排序,即待排序的记录存储在外存储器上,待排序的文件无法一次装入内存,需要在内存和外部存储器之间进行多次数据交换,以达到排序整个文件的目的。外部排序最常用的算法是多路归并排序,即将原文件分解成多个能够一次性装入内存的部分,分别把每一部分调入内存完成排序。然后,对已经排序的子文件进行多路归并排序。 尾递归是指,在函数返回的时候,调用自身本身,并且,return语句不能包含表达式。这样,编译器或者解释器就可以把尾递归做优化,使递归本身无论调用多少次