循环队列、完全二叉树、插入时间复杂度、有序表归并
【题目分析1】
队头指针—front(end1),队尾指针—rear(end2),QueueSize(M)为循环队列的最大长度。
队空条件:front==rear;
队满条件:(rear+1)% QueueSize==front;
队列长度:(rear-front+QueueSize)%QueueSize
入队:(rear+1)% QueueSize;
出队:(front+1)% QueueSize;
【题目分析2】
根节点是i,子节点为2i,2i+1。(偶数结点父节点编号为编号除以2,奇数结点父节点编号为(其编号-1)/2 )
【题目分析3】
C.平均时间复杂度为O(1)
哈希表插入的时间复杂度与冲突次数有关,O(冲突次数/n)
最好的情况:冲突次数为0,时间复杂度为O(1);
最坏的情况:冲突次数为n*(n-1)/2,平均比较次数为(n-1)/2,时间复杂度为O(n)
【题目分析4】
最简单的归并是直接将两个有序表合并成一个有序表,也就是说一表的所有数大于或小于另一表的所有数,所以最少只需要比较n次。
那么最多比较次数是?
当两个有序表的数据刚好是插空顺序时,比较次数最多,为2n-1。