JAVA专项练习

£可爱£侵袭症+ 提交于 2020-02-23 17:04:28

 解析:排序过程就是进行比较和交换过程,而时间复杂度就与比较和交换的次数相关。

解析:二维数组为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语句不能包含表达式。这样,编译器或者解释器就可以把尾递归做优化,使递归本身无论调用多少次,都只占用一个栈帧,不会出现栈溢出的情况。 尾递归调用时,如果做了优化,栈不会增长,因此,无论多少次调用也不会导致栈溢出。

 

 

push() 在数组末尾添加元素,返回新数组长度,所以返回5

pop() 删除数组最后一位,返回所删除的元素,所以返回5

shift() 删除数组第一位,返回所删除的元素,所以返回1

unshift() 在数组开头添加元素,返回新数组长度,所以返回5

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!