算法
BernadetteDi
这个作者很懒,什么都没留下…
展开
-
数据结构与算法: 排序之归并排序
数据结构与算法: 排序之归并排序归并排序原理/核心思想:递推公式伪代码merge函数具体过程:伪代码:python代码三个问题1.是否是稳定的排序算法2.时间复杂度如何分析递归代码的时间复杂度3.空间复杂度归并排序原理/核心思想:如果要排序一个数组,我们先把数组从中间分成前后两部分,然后对前后两部分分别排序,再将排好序的两部分合并在一起,这样整个数组就都有序了。归并排序使用的就是分治思想. 分治,顾名思义,就是分而治之,将一个大问题分解成小的子问题来解决。小的子问题解决了,大问题也就解决了递推公式原创 2020-06-02 16:10:53 · 216 阅读 · 0 评论 -
基于比较的排序算法之 冒泡, 插入, 选择
基于比较的排序算法之 冒泡, 插入, 选择冒泡排序、插入排序、选择排序这三种排序算法,它们的时间复杂度都是 O(n^2),比较高,适合小规模数据的排序。如何分析"排序算法"排序算法的执行效率1.最好情况, 最坏情况, 平均情况时间复杂度(1)分别给出最好情况、最坏情况、平均情况下的时间复杂度(2)最好、最坏时间复杂度对应的要排序的原始数据是什么样的.2.时间复杂度的系数、常数 、低阶我们知道,时间复杂度反应的是数据规模 n 很大的时候的一个增长趋势,所以它表示的时候会忽略系数、常数、低阶原创 2020-05-24 14:51:55 · 184 阅读 · 0 评论 -
数据结构与算法: 动态规划篇1 之0-1背包问题
动态规划 0-1背包问题0-1 背包问题动态规划: 优化前 (二维数组)动态规划: 优化后 (一维数组)0-1 背包问题升级版(引入物品价值)0-1 背包问题对于一组不同重量、不可分割的物品,我们需要选择一些装入背包,在满足背包最大重量限制的前提下,背包中物品总重量的最大值是多少呢?回溯的解决方法是穷举搜索所有可能的装法,然后找出满足条件的最大值。不过,回溯算法的复杂度比较高,是指数级别的, 复杂度为O(2^n)。递归树中的每个节点表示一种状态,我们用(i, cw)来表示。其中,i原创 2020-05-12 02:17:04 · 418 阅读 · 0 评论 -
数据结构与算法——2数组, 链表
数据结构与算法——2数组, 链表数组定义如何实现随机访问低效的"插入"和"删除"插入操作删除操作警惕数组的访问越界问题容器能否完全替代数组?内容小结链表链表与数组的简单区别常见的链表结构单链表基本概念数据的查找、插入和删除操作插入和删除(优势):随机访问(劣势):循环链表优点双向链表相比单链表,双向链表适合解决哪种问题呢?插入,删除操作中的优势对于一个有序链表,双向链表的按值查询的效率也要比单链表...原创 2020-05-01 21:29:02 · 381 阅读 · 0 评论 -
数据结构与算法——1复杂度分析
数据结构与算法:1复杂度分析复杂度分析一. 如何分析,统计算法的执行效率和资源消耗?1. 为什么需要复杂度分析?事后统计法的局限性:2.大 O 复杂度表示法与时间复杂度分析三个实用的方法几种常见时间复杂度实例分析3.空间复杂度分析4.内容小结二. 最好、最坏、平均、均摊时间复杂度最好、最坏情况时间复杂度平均情况时间复杂度均摊时间复杂度以及摊还分析(平摊分析)均摊时间复杂度应用场景练习:复杂度分析...原创 2020-05-01 01:47:57 · 174 阅读 · 0 评论