
数据结构与算法
文章平均质量分 91
book&sword
这个作者很懒,什么都没留下…
展开
-
算法(三)排序
排序算法原理与优缺点对比 排序就是让一组无序数据变为有序 衡量排序算法的优劣从下面三个角度解析 1、时间复杂度 最好时间复杂度、最坏时间复杂度、平均时间复杂度 2、空间复杂度 若空间复杂度是1,也叫做原地排序 3、稳定性 相等的数据对象,在排序之后,顺序是否保证不变 排序算法一、冒泡排序 原理 从第一个数据开始,一次比较相邻元素的大小。 若前者大于后者,则进行交换操作,将大的元素往后交换。 经过多次迭代,直到没有交换操作 像是在一个水池中处理数据一样,每次把最大的数据传递到最后 性能 最好时间复杂度:O(原创 2021-11-26 19:40:30 · 597 阅读 · 0 评论 -
算法思维(二):分治
分治:如何利用分治法完成数据查找 核心思想就是“分而治之” 把一个大规模、高难度的问题,分解为若干个小规模、低难度的小问题 小问题的答案合并,来得到原问题的答案 很多高效率的算法都是以分治法作为其基础思想,例如快速排序和归并排序。 分治法是什么? 计算机求解问题所需最小时间,与其涉及的数据规模强相关 比如:在一个包含 n 个元素的无序数组中,要求按照从小到大的顺序打印其 n 个元素。 n 个元素之间的两两比较的计算方法,得到从小到大的序列 当数据量 n = 1 时,不需任何计算,直接打印即可; 当数据量 n原创 2021-11-08 21:16:33 · 321 阅读 · 0 评论 -
算法思维(一):递归
算法思维基础 递归(Recursion) 函数定义中使用函数自身的方法 1、递归问题可以分解为若干个规模较小,与原问题形式相同的子问题。并且这些子问题可以用完全相同的解决思路来解决 2、递归问题的演化过程是一个对原问题从大到小进行拆解的过程,并且有一个明确的终点(临界点)。一旦原问题到达临界点,不再往更小的问题拆解。最后从这个临界点开始,将小问题的答案按照原路返回。原问题得以解决 递归的基本思想就是将大规模问题转化为规模小的相同子问题来解决 大问题和小问题是一样的问题,因此大问题的解决方法和小问题的相同,产原创 2021-11-08 20:07:15 · 959 阅读 · 0 评论