算法和数据结构
whyfail
编程界崇尚以简洁优雅为美,很多时候,如果你觉得一个概念很复杂,那么很可能是你理解错了!
展开
-
Python之树
树树结构是一种包括节点(nodes)和边(edges)的拥有层级关系的一种结构, 它的形式和家谱树非常类似linux 文件结构(tree 命令)也是一棵树根节点(root): 树的最上层的节点,任何非空的树都有一个节点路径(path): 从起始节点到终止节点经历过的边父亲(parent):除了根节点,每个节点的上一层边连接的节点就是它的父亲(节点)孩子(children): ...原创 2020-02-27 15:00:01 · 1396 阅读 · 0 评论 -
Python之快速排序
快速排序快速排序(Quicksort)是对冒泡排序的一种改进。算法原理通过一趟排序将要排序的数据分割成独立的两部分其中一部分的所有数据都比另外一部分的所有数据都要小然后再按此方法对这两部分数据分别进行快速排序整个排序过程可以递归进行,以此达到整个数据变成有序序列。代码实现def quick_sort(data): if len(data) >=...原创 2020-02-26 21:44:00 · 116 阅读 · 0 评论 -
Python之归并排序
归并排序归并排序(Merge sort)是建立在归并操作上的一种有效的排序算法该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。算法原理首先需要将一个序列划分一个个有序的的序列,然后再进行归并。先拆分为一个个有序的子...原创 2020-02-26 21:32:51 · 262 阅读 · 0 评论 -
Python之选择排序
选择排序选择排序(Selection sort)是一种简单直观的排序算法。选择排序是不稳定的排序方法。算法原理第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。以此类推,直到全部待排序的数据元素的个数为零。代码实现def selection_sort(list2):...原创 2020-02-26 15:26:39 · 158 阅读 · 0 评论 -
Python之冒泡排序
冒泡排序冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气泡最终会上浮到顶端一样,故名“冒泡排序”。算法原理比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最...原创 2020-02-26 14:44:28 · 150 阅读 · 0 评论 -
Python之二分查找
二分查找二分查找也称折半查找(Binary Search),它是一种效率较高的查找方法。但是,折半查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。无序查找使用线性查找,有序查找使用二分查找代码实现二分查找在数组中查找val的具体下标:def binary_search(sorted_array, val): if not sorted_array...原创 2020-02-26 15:17:40 · 162 阅读 · 0 评论 -
Python之线性查找
查找查找是在大量的信息中寻找一个特定的信息元素查找可以说是业务代码里用得最多的操作enumerate() 函数enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。enumerate() 方法的语法:enumerate(sequence, [start=0])sequence – ...原创 2020-02-26 15:08:48 · 639 阅读 · 0 评论 -
Python之递归和栈
递归递归是很多算法都使用的一种编程方法,具体的表现在于自己调用自己。每个递归函数都有两部分:基线条件 与 递归条件递归条件:指的是函数调用自己基线条件:指的是函数不再调用自己,从而避免形成无限循环。代码实现递归def count_down(i): print(i) if i<=1: return else: count_...原创 2020-02-26 14:53:08 · 597 阅读 · 0 评论 -
Python之哈希表
哈希表哈希表是种数据结构,它可以提供快速的插入操作和查找操作。不论哈希表中有多少数据,插入和删除(有时包括侧除)只需要接近常量的时间即0(1)的时间级。工作原理哈希表基于数组的因为数组创建后难于扩展某些哈希表被基本填满时,性能下降得非常严重所以必须要清楚表中将要存储多少数据定位数据存储的位置:h(key) = key % size取模运算使得 h(key) 的结果不会超过...原创 2020-02-26 17:19:50 · 239 阅读 · 0 评论 -
算法和数据结构
算法和数据结构程序 = 算法 + 数据结构算法:是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。任何代码片段都可视为算法数据结构(Data Structures):是计算机存储和组织数据的一种方式,可以用来高效地处理数据。好的程序设计无外乎两点,“快"和"省”。"快"指程序执行速度快,高效"省"指占用更小的内存空间数...原创 2020-02-22 21:26:51 · 209 阅读 · 0 评论