数据结构与算法
The fool
为每件事积极准备,争取结果的最优化.
展开
-
数据结构与算法(Python)-前篇
接触计算机学习已经9年了,零零碎碎学习了很多理论和技术,现在回过头来才发现,能够培养计算机专业素养的基础学科也就那么多,其中数据结构和算法分析,就是一个核心课程。在实际工作过程中,很多时候会遇到庞大的业务需求,项目计划排的满满的,项目进度一直在和市场上同类竞争产品赛跑。一般开发人员的日常都被繁琐的业务塞的满满的,好在只要熟悉了公司的框架和流程后,也就驾轻就熟,慢慢适应了。有时候并不需要什么高深的算法原创 2017-08-27 11:40:39 · 1358 阅读 · 0 评论 -
数据结构与算法(Python)——常见数据结构Part4(二叉树)
写在前面在上一节part3我们熟悉队列结构,本节将熟悉应用广泛的树结构。我们的目的是快速了解他们,对于它们涉及到的复杂的数据结构和算法,在这里并不全部展开,留在后期详述。1. 树1.1 树的直观感受树是一个广泛应用的数据结构,即使未开始学习这个数据结构,我们在生活或者计算机中已经和它打交道好久了。首先让我们看几个树形的应用例子(图片来自What is the real li...原创 2017-12-21 17:31:02 · 1765 阅读 · 0 评论 -
数据结构与算法(Python)——常见数据结构Part3(队列和循环队列)
写在前面在上一节part2我们熟悉了栈结构,本节继续对其他常见数据结构进行总结。我们的目的是快速了解他们,对于它们涉及到的复杂的数据结构和算法,在这里并不全部展开,留在后期详述。1. 队列1.1 一般队列同上一节栈类似,队列(Queue)结构也是插入和删除元素受到限制的线性结构。队列一般是一种只允许在线性结构的一端进行插入,另一端进行删除的结构,允许插入的一端称之为队尾(r...原创 2017-12-20 17:19:52 · 1525 阅读 · 0 评论 -
数据结构与算法(Python)——常见数据结构Part2(栈和递归)
写在前面在上一节part1我们熟悉数组和链表,本节继续对其他常见数据结构进行总结。我们的目的是快速了解他们,对于它们涉及到的复杂的数据结构和算法,在这里并不全部展开,留在后期详述。1. 栈栈(stack)也是一种线性结构,与数组不同的是,栈限定了只能在线性表的一端,例如尾部进入插入或者删除操作(只允许头部操作类似)。栈类似于把车开入了一个死胡同,只剩下一端,只能从这个入口进入或...原创 2017-12-16 20:35:36 · 1379 阅读 · 0 评论 -
数据结构与算法(Python)——常见数据结构Part1(数组和链表)
写在前面本节对常见数据结构做一个预览,我们的目的是快速了解他们,对于它们涉及到的复杂的数据结构和算法,在这里并不全部展开,留在后期详述。1.数组数组是我们要学习的第一个线性结构(Linear structure),所谓线性结构,指的是在数据有限集合中,每个数据元素都有一个确定的位置,例如a0a0a_{0}是第一个元素,an−1an−1a_{n-1}是最后一个元素,aiaia_{i}...原创 2017-12-09 14:24:14 · 4657 阅读 · 1 评论 -
数据结构与算法(Python)-Python快速入门篇2
写在前面紧接着上一节python入门1,本节还是继续学习Python的必备知识。具体的知识结构图如下所示:函数和作用域1)函数定义python中函数定义由关键字def开始,例如定义一个产生斐波拉契数列的函数如下:def fib(n): """Print a Fibonacci series up to n.""" a, b = 0, 1 while a < n: pr原创 2017-09-03 16:18:22 · 3961 阅读 · 0 评论 -
数据结构与算法(Python)-Python快速入门篇3
写在前面对于简单的任务,我们可以利用一些函数,按照任务处理的流程书写代码来完成需求,这种方式称之为过程式编程(procedural programming);但是对于复杂的系统,如何有条理的将每个模块的代码内聚起来,如何清晰和简洁地表达各个模块之间的交互,就需要一种新的指导思想,面向对象编程(object-oriented programming)。OOP强调的就是为独立模块构造对象,对象之间通过消原创 2017-09-10 18:58:29 · 2656 阅读 · 0 评论 -
数据结构与算法(Python)-Python快速入门篇4
写在前面本节是Python入门篇的最后一篇了,通过本节我们将会熟悉Python模块、包的使用,同时了解和养成书写Pythonic代码的习惯。主要内容如下图所示:模块和包1) 模块的定义和名字在Python中一个脚本(Script)是一个将要被当做主模块(main)执行的python文件。模块(Module)是一个以.py结尾的python文件,在文件中我们定义了函数、类,准备以后重用这些代码块。Py原创 2017-09-18 13:10:57 · 1781 阅读 · 0 评论 -
数据结构与算法(Python)-一般概念和算法效率分析
写在前面前面学习完了Python基础内容后,从本节开始正式学习数据结构与算法相关内容。这是一个比较复杂的主题,一般分为初级、高级、以及专门的算法分析三个阶段来学习,因此我们也需要循序渐进。本节主要熟悉数据结构与算法中一般概念,然后熟悉算法效率分析的大O记法,知识结构如下图所示:什么是算法?1)算法的定义算法(Algorithm),指的是对特定问题求解步骤的一种描述。 在数学上,它是运算步骤的有限序原创 2017-09-24 15:50:25 · 3666 阅读 · 1 评论 -
数据结构与算法(Python)-python快速入门篇1
写在前面python语言以其语法简洁(代码量比java开发的程序少3-5倍,比c++少5-10倍[^1])、快速原型开发(prototyping)以及庞大第三方库的支持,广泛应用于多个领域,成为了一门很流行的语言。我们这里使用Python,可以抛开其他像C++/java这些语言本身的复杂性,把精力集中在数据结构和算法的思考上。同时在完成一般性的数据结构与算法的学习后,熟练掌握Python后,也可以将原创 2017-08-27 16:16:37 · 8951 阅读 · 0 评论 -
数据结构与算法(Python)——常见数据结构Part5(二叉搜索树BST和AVL)
写在前面在上一节part4我们熟悉了二叉树结构,以及其遍历算法,本节将继续学习常见的树结构,包括二叉搜索树和一种自平衡的二叉搜索树AVL。1. 二叉搜索树二叉搜索树(Binary Search Tree):二叉查找树,也称二叉搜索树、有序二叉树(ordered binary tree),排序二叉树(sorted binary tree)。它或者是一棵空树;或者是指具有如下性质的二叉...原创 2018-02-06 20:30:08 · 1407 阅读 · 1 评论