Java初阶数据结构练习

文章讨论了ArrayList的初始化与扩容机制,有序单链表的插入操作时间复杂度,二叉树的遍历,完全二叉树的节点编号计算,以及队列在出队操作中的指针管理。同时,涉及哈希表的冲突解决方法,不同排序算法的时间复杂度比较,以及大数据量排序下的内存优化策略。最后,提到了斐波那契数列的计算问题。
摘要由CSDN通过智能技术生成

1. ArrayList list=new ArrayList(20)扩充了( A )次

A. 0

B. 1

C. 2

当调用的是不带参数的构造方法时,默认大小时10,之后就开始扩容

但是这里调用的是带参数的构造方法

 

2.在一个具有n个节点的有序单链表中插入一个新节点并仍然保持有序的的时间复杂度

是( B ) 

A. O(1)

B. O(n)

C. O(n^2)

D. O(n*log 2 n)

3.一颗二叉树的前序遍历是BCDEFAG,后序遍历是DCFAEGB,那麽他的后序遍历是

DAFGECB 

9ba1ed7d41634ecdafa23b08295a0eb6.png

 

4.一颗完全二叉树,根节点编号1,问编号为98的父亲节点编号是 (49)

当根节点编号是0,parent=(child-1)/2;

所以:98/2

5.用不带头的单链表存储队列,其对头指针指向对头结点,队尾指针指向队尾节点,则在进行出队操作时()

A.仅修改队头指针

B.仅修改队尾指针

C.队头指针,队尾指针都有可能需要修改

D.队头指针,队尾指针都要修改 

答案:C

当队列中只有一个元素的时候,出队,队头队尾指针都要置为空。

 6.HashMap通过链地址法来解决哈希冲突。

7.下列排序中,最坏情况下时间复杂度最低的是(C)

A. 希尔排序 N^1.5

B. 快速排序 N^2

C. 堆排序 N log n

D. 冒泡排序 N^2

8.假设有100MB的内存,需要对1GB的数据进行排序,最合适的算法是:归并排序

 

 9.斐波那契数列如0,1,1,2,3,5,8,13,21,.......,给定一个任意的数字,问它还有几步能变成斐波那契数

 

   public static int func(int key){
        int f1=0;
        int f2=1;
        int f3=-1;
        while(f3<key){
            f3=f1+f2;
            if(f3>key){
                break;
            }
            f1=f2;
            f2=f3;

        }
        if(key-f2>f3-key){
            return f3-key;
        }else{
            return key-f2;

        }
    }

 

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sqyaa.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值