2022暑期复习-Day1

Posted Booksort

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2022暑期复习-Day1相关的知识,希望对你有一定的参考价值。

目录

选择题

Q1堆是一种有用的数据结构。下列那个关键码序列是一个堆()。

A. 94,31,53,23,16,72
B. 94,53,31,72,16,23
C. 16,53,23,94,31,72
D. 16,31,23,94,53,72

堆要满足其中的任何一个父亲和孩子都要满足大根堆或者小根堆,且只能满足一种情况,不能存在堆中即又小堆又有大堆存在

选项A


选项B

选项C

选项D

答案:D

Q2 将关键字序列 50,40,95,20,15,70,60,45,80 调整成一个小根堆,堆结构是15,20,60,45,40,70,95,50,80 ,该说法正确吗?()

A.正确
B.不正确

将数组构建成堆的算法是,
从第一个非叶子节点 (n-2)/2 开始,依次循环到根节点,并且每次都进行向下调整算法
时间复杂度为O(N*logN)

答案:A

Q3 已知序列 25, 13, 10, 12, 9 是大根堆,在序列尾部插入新元素 18 ,将其再调整为大根堆,调整过程中元素之间进行的比较次数是( )

A.1
B.2
C.4
D.5

利用向上调整算法,从尾部新元素开始,依次与父节点比较,直到比完根节点。

答案:A

Q4 已知关键字序列 5,8,12,19,28,20,15,22 是小根堆(最小堆),插入关键字 3 ,调整后得到的小根堆是()

A. 3,5,12,8,28,20,15,22,19
B. 3,5,12,19,20,15,22,8,28
C. 3,8,12,5,20,15,22,28,19
D. 3,12,5,8,28,20,15,22,19




答案:A

Q5 在堆排序的过程中,建立一个堆的时间复杂度是()

A. O(n)
B. O(logn)
C. O(nlogn)
D. O(n2)

从下往上进行向下调整算法,每一个元素比较H-当前层数
H(t) = 1*(h-1)+2*(h-2)+4*(h-3)…

答案:A

编程题

Q6

class Solution 
public:
    bool isAnagram(string s, string t) 
        size_t len = s.size();
        if(s.size()!=t.size())
            return false;
        int arr[26]=0;
        for(int i = 0;i < len; i++)
        
            arr[s[i]-'a'] +=1;
            arr[t[i]-'a'] -=1;
        
        int count=0;
        for(int i =0;i<26;i++)
        
            if(arr[i]==0)
                count++;
        
        return count==26;
    
;

Q7

char arr[] = 'a','e','i','o','u';
class Solution 
public:
    
    bool findtrue(char c)
    
        for(int i=0;i<5;i++)
        
            if(c==arr[i]||c==arr[i]-32)
                return true;
        
        return false;
    
    bool halvesAreAlike(string s) 
        
        int count = 0;
        int len = s.size();
        for(int i = 0; i<len ;i++)
        
            if(findtrue(s[i]))
            
                if(i<len/2)
                    count++;
                else
                    count--;
            
        
        return count==0;
    
;

以上是关于2022暑期复习-Day1的主要内容,如果未能解决你的问题,请参考以下文章

2022暑期复习-Day7

如何在Java中避免创建不必要的对象(备战2022春招或暑期实习,每天进步一点点,打卡100天,Day1)

2022暑期复习-Day4

2022暑期复习-Day6

2022暑期复习-Day3

2022暑期复习-Day3