| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 数据结构与算法 -> TwoSugar的算法笔记 -> 正文阅读 |
|
[数据结构与算法]TwoSugar的算法笔记 |
TwoSugar的算法笔记时间、空间复杂度时间复杂度
快速判断时间复杂度的方法(简单情况)
复杂情况:根据算法执行过程进行判断 空间复杂度
递归递归的两个特点
查找在一些元素中通过一定的方法找到与给定关键字相同的数据元素的过程 列表查找:
python内置函数index() 排序排序总览[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3YmpHV63-1637246864044)(D:\桌面\笔记\排序.jpg)] 冒泡排序、选择排序、插入排序使用场景:
快速排序快排的过程可以看作递归+划分 (注:为方便记忆算法,我习惯将其记作“递归+划分” ------sort(partition,sort,sort) + partition(while{while,while})) 使用场景:
可以使用快排解决的问题: 堆排序堆排序的过程可以拆解为
(注:为方便记忆算法,我习惯将其记作“生成大根堆+调整+排序” ------for(第一个非叶子节点){adjust()}+for(第一个叶子节点){swap(堆顶,叶子节点),adjust}+adjust(){for(){if+if}}) 使用场景:
可以使用堆排序解决的题: topk问题topk问题:从arr[1, n]这n个数中,找出最大的k个数,这就是经典的TopK问题 实现方法:
归并排序归并排序的过程可以看作是先分解再聚合,通过将待排序目标进行分解从而达到方便排序的目标,最后通过合并函数将已经排序的两个序列进行合并 (注:为方便记忆算法,我习惯将其记作“递归+合并” ------sort(sort,sort,merge)merge(while,while,while,while)) 使用场景:
可以使用归并排序解决的问题: 希尔排序希尔排序(Shell Sort)是插入排序的一种算法,是对直接插入排序的一个优化,也称缩小增量排序。
(注:为方便记忆算法,我习惯将其记作“三层for循环+if” ------** for(for(for(if)))**) 使用场景:
可以使用希尔排序解决的问题: 计数排序使用场景:
可以使用计数排序解决的问题: 基数排序使用场景:
可以使用基数排序解决的问题: 桶排序使用场景:
可以使用捅排序解决的问题: 便记忆算法,我习惯将其记作**“三层for循环+if”** ------** for(for(for(if)))**) 使用场景:
可以使用希尔排序解决的问题: 计数排序使用场景:
可以使用计数排序解决的问题: 基数排序使用场景:
可以使用基数排序解决的问题: 桶排序使用场景:
可以使用捅排序解决的问题: |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 | -2025/1/9 1:37:42- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |