随笔分类 - 算法
摘要:列表 关于列表的存储: 列表开辟的内存空间是一块连续的内存,把这个内存等分成几份(单位是字节),他是连续存储的。 如果一个列表长度已满,再append添加元素的话,会在内存中重新开辟一个2倍的内存空间以存储新元素,原列表内存会被清除。 链表 >列表相对应的数据结构 链表是一种线性数据结构(与树形结构
阅读全文
摘要:参考博客:浅谈算法和数据结构: 一 栈和队列 Python数据结构——栈、队列的实现(一) Python数据结构——栈、队列的实现(二) Python数据结构——链表的实现 数据结构 定义:简单来说,数据结构就是设计数据以何种方式组织并存储在计算机中。比如:列表、集合与字典等都是一种数据结构。 PS
阅读全文
摘要:希尔排序 Shell Sort 介绍: 希尔排序(Shell Sort)也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本。 该方法的基本思想是:先将整个待排元素序列分割成若干个子序列(由相隔某个“增量”的元素组成的)分别进行直接插入排序,然后依次缩减增量再进行排序,待整个序列中的元素基本有
阅读全文
摘要:参考博客:常用排序算法总结(二) 计数排序 counting sort 1.计数排序是一种非常快捷的稳定性强的排序方法,时间复杂度O(n+k),其中n为要排序的数的个数,k为要排序的数的组大值。计数排序对一定量的整数排序时候的速度非常快,一般快于其他排序算法。但计数排序局限性比较大,只限于对整数进行
阅读全文
摘要:参考博客:基于python的七种经典排序算法 常用排序算法总结(一) 堆排序 堆排序前传 - 树与二叉树 树是一种很常见的非线性的数据结构,称为树形结构,简称树。所谓数据结构就是一组数据的集合连同它们的储存关系和对它们的操作方法。树形结构就像自然界的一颗树的构造一样,有一个根和若干个树枝和树叶。根或
阅读全文
摘要:快速排序 quick sort 介绍: 快速排序(Quicksort)是对冒泡排序的一种改进。在平均状况下,排序 n 个项目要Ο(n log n)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο(n log n) 算法更快,因为它的内部循环(inner
阅读全文
摘要:参考博客:基于python的七种经典排序算法 [经典排序算法][集锦] 经典排序算法及python实现 首先明确,算法的实质 是 列表排序。具体就是操作的列表,将无序列表变成有序列表! 一、排序的基本概念和分类 所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。
阅读全文
摘要:一、递归 概念: 函数直接或者间接的调用自身算法的过程,则该函数称为递归函数。在计算机编写程序中,递归算法对解决一大类问题是十分有效的。 特点: ①递归就是在过程或者函数里调用自身。 ②在使用递归策略时,必须有一个明显的结束条件,称为递归出口。问题规模相比上次递归有所减少, ③递归算法解题通常显得很
阅读全文
摘要:一、算法: 算法是对特定问题求解步骤的一种描述,是独立存在的一种解决问题的方法和思想。它是指令的有限序列,其中每一条指令表示一个或多个操作; 此外,成为一个算法需要满足以下条件或特性: (1)有穷性。一个算法必须总是在执行有穷步之后结束,且每一步都可在有穷时间内完成。(2)确定性。算法中每一条指令必
阅读全文