如果简单的利用定义:每调用一次该函数就需要O(h)时间,调用k次就需要O(kh)时间。这种想法是没有深入分析题目中函数具体调用过程。如果明白12.2-7题目核心内容。就知道,除了第一次调用该函数需要O(h)时间外,其余的连续k-1次遍历了连续的k-1个结点,这k-1个结点有k-2个边,而每条边最多遍历2次。所以总时间T=O(h)+2(k-2)=O(h+k).为什么k-1个结点有k-2个边,可以举例一些图像
时间: 2023-06-10 08:03:23 浏览: 55
来解释。
假设我们有一棵二叉搜索树,其中每个节点都表示一个整数。我们想要找到这个树中第k小的元素。我们可以用深度优先搜索来找到这个元素。
首先,在深度优先搜索中,我们需要遍历每个节点。对于这个二叉搜索树而言,如果我们从根节点出发,我们将首先遍历它的左子节点,然后是它的右子节点。
当我们到达某个节点时,我们需要计算它的排名。如果节点左子树中有n个节点,则该节点的排名为n+1。如果n恰好等于k-1,则该节点就是树中的第k小元素。否则,如果n>k-1,则我们可以继续在该节点的左子树中查找第k小的元素;如果n<k-1,则我们可以在该节点的右子树中查找第k小的元素,其中k减去n+1。
在上述过程中,我们发现每个节点至多被访问两次:一次是在从根节点到该节点的途中,另一次是在从该节点返回其父节点的途中。因此,最糟情况下,我们将遍历k-1个节点(排名小于等于k-1)和k-2条边(节点之间的边)。因此,总时间复杂度为O(hk),其中h是树的高度。
下面是一个例子(以红黑树为例)。假设我们想要查找红黑树中排名为3的元素。我们首先从根节点出发,遍历到5,发现5的排名为1+1=2,继续遍历其右子树,至节点8,发现8的排名为2+1=3,因此8就是我们要找的元素。在这个过程中,我们遍历了4个节点(5、8、7、6)和3条边,时间复杂度为O(hk)。
相关问题
W9825G6KH-6I
W9825G6KH-6I是一种外部SDRAM芯片,用于提供较大的运行内存,特别适用于需要缓存显示屏的情况。它具有1280*800分辨率的显示屏,每帧缓存需要1Mb~3Mb的内存。在STM32F4xx内部无法运行,因此需要使用外部缓存。需要注意的是,该芯片在掉电后数据会迅速丢失,重启后需要特别注意这一特性。SDRAM和SRAM有所区别,引脚和程序也不通用。一般情况下,我们使用SDRAM,因为它的性价比高且有丰富的资料支持。SDRAM的结构复杂,但使用起来相对简单。初始化后,只需要记住一个地址即可,程序上可以忘记它的存在。W9825G6KH-6I是一种常用的SDRAM芯片,市场上有很多可替代的芯片,价格在15元左右。在硬件连接方面,可以参考原理图和引脚说明进行连接。在程序使用方面,需要进行初始化和基本函数的调用,然后进行正常使用。总结起来,对于W9825G6KH-6I的使用,需要将SDRAM模式中的CAS latency设置为3,并将SDCLK周期设置为2个FMC周期。此外,还需要注意突发读使能等相关设置。在主函数中调用SDRAM_Cmd_Init()和SDRAM_Test()函数即可。如果初始化指令出现问题,可以通过修改下载方式为under reset,然后按住复位键,点击下载键,复位后立即松开来解决问题。如果有其他问题或需要源码,请在评论区下方留言或留下邮箱联系。\[1\]\[2\]\[3\]
#### 引用[.reference_title]
- *1* [STM32F4xx SDRAM(更新中)](https://blog.csdn.net/zhouml_msn/article/details/90052820)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
- *2* [STM32H750 SDRAM W9825G6KH-6](https://blog.csdn.net/smallerlang/article/details/128061724)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
- *3* [STM32F429IGT6项目准备5——使用STM32CubeMX配置SDRAM](https://blog.csdn.net/qq_42039294/article/details/112221396)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
CVX求解问题max¦(W) tr(SW) (10) s.t. tr(kh^H W)/γ-σ^2≥0,(11) tr(W)≤P,(12) W≥0,(13)
这是一个凸优化问题,可以使用CVX求解。具体步骤如下:
1. 定义变量和参数:
```
cvx_begin
% 定义变量
variable W(Nt, Nt) hermitian;
% 定义参数
parameter S(Nt, Nt) hermitian;
parameter kh(Nr, Nt) complex;
parameter gamma;
parameter sigma;
parameter P;
cvx_end
```
2. 定义目标函数:
```
cvx_begin
...
% 定义目标函数
maximize(trace(S * W));
cvx_end
```
3. 添加约束条件:
```
cvx_begin
...
% 添加约束条件
trace(kh' * W * kh) / gamma - sigma^2 >= 0;
trace(W) <= P;
W >= 0;
cvx_end
```
4. 调用CVX求解:
```
cvx_begin
...
% 调用CVX求解
cvx_solver('sedumi');
cvx_end
```
完整代码如下:
```
cvx_begin
% 定义变量
variable W(Nt, Nt) hermitian;
% 定义参数
parameter S(Nt, Nt) hermitian;
parameter kh(Nr, Nt) complex;
parameter gamma;
parameter sigma;
parameter P;
% 定义目标函数
maximize(trace(S * W));
% 添加约束条件
trace(kh' * W * kh) / gamma - sigma^2 >= 0;
trace(W) <= P;
W >= 0;
% 调用CVX求解
cvx_solver('sedumi');
cvx_end
```
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)