数据结构与算法
ITxiaoke
人生就是一场漫长的修行,三重境界:渡己,渡他,渡未来
展开
-
Python中尾数前移的算法问题
Python中尾数前移的算法问题原创 2017-04-20 09:43:20 · 1056 阅读 · 0 评论 -
Python插入排序算法
Num01–>定义 插入排序(英语:Insertion Sort)是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。原创 2017-05-27 17:26:58 · 5901 阅读 · 4 评论 -
Python希尔排序算法
Num01–>定义 希尔排序(Shell Sort)是插入排序的一种。也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。该方法因DL.Shell于1959年提出而得名。 希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文件恰被分成一组,算法便终止。原创 2017-05-27 17:37:48 · 4952 阅读 · 1 评论 -
Python快速排序算法
Num01–>定义 快速排序(英语:Quicksort),又称划分交换排序(partition-exchange sort),通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。原创 2017-05-27 17:50:52 · 2703 阅读 · 0 评论 -
Python归并排序算法
归并排序是采用分治法的一个非常典型的应用。归并排序的思想就是先递归分解数组,再合并数组。原创 2017-05-29 16:31:12 · 1150 阅读 · 1 评论 -
常见算法时间复杂度比较
Python常见算法时间复杂度比较原创 2017-05-29 16:34:11 · 2181 阅读 · 0 评论 -
Python二分查找算法
二分查找又称折半查找, 优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。 因此,折半查找方法适用于不经常变动而查找频繁的有序列表。原创 2017-05-29 16:42:22 · 10014 阅读 · 0 评论 -
树与树算法
树(英语:tree)是一种抽象数据类型(ADT)或是实作这种抽象数据类型的数据结构,用来模拟具有树状结构性质的数据集合。它是由n(n>=1)个有限节点组成一个具有层次关系的集合。原创 2017-05-29 17:03:04 · 484 阅读 · 0 评论 -
浅谈二叉树
二叉树是每个节点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)原创 2017-05-29 17:15:31 · 539 阅读 · 0 评论 -
Python选择排序算法
Num01–>选择排序定义 选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。原创 2017-05-27 17:18:53 · 6750 阅读 · 0 评论 -
Python冒泡排序算法
Num01–>冒泡排序定义 冒泡排序(英语:Bubble Sort)是一种简单的排序算法。它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。原创 2017-05-27 16:59:56 · 26164 阅读 · 7 评论 -
Python中水仙花算法的计算
Python中水仙花算法的计算原创 2017-04-20 10:08:26 · 2605 阅读 · 0 评论 -
Python中不重复三位数算法的计算
Python中不重复三位数算法的计算原创 2017-04-20 10:12:08 · 3281 阅读 · 0 评论 -
Python中自守数算法的计算:
Python中自守数算法的计算:原创 2017-04-20 13:30:57 · 2715 阅读 · 0 评论 -
时间复杂度与大O记法的理解
算法,时间复杂度原创 2017-05-24 17:00:08 · 5102 阅读 · 0 评论 -
数据结构之顺序表
Num01–>线性表定义及顺序表和链表 在程序中,经常需要将一组(通常是同为某个类型的)数据元素作为整体管理和使用,需要创建这种元素组,用变量记录它们,传进传出函数等。一组数据中包含的元素个数可能发生变化(可以增加或删除元素)。原创 2017-05-25 14:33:17 · 1601 阅读 · 0 评论 -
Python中斐波那契数列实现
Python中斐波那契数列实现题目:说有一对可爱的兔子,出生后的第三个月开始,每一月都会生一对小兔子。当小兔子长到第三个月后,也会每个月再生一对小小兔子.要求:假设条件,兔子都不死的情况下,问每个月的兔子总数为多少?思路:兔子的规律为数列0,1,1,2,3,5,8,13,21......似斐那波契数列的感觉原创 2017-04-25 16:35:47 · 6171 阅读 · 0 评论 -
数据结构之链表
链表结构可以充分利用计算机内存空间,实现灵活的内存动态管理。 链表(Linked list)是一种常见的基础数据结构,是一种线性表,但是不像顺序表一样连续存储数据,而是在每一个节点(数据存储单元)里存放下一个节点的位置信息(即地址)。原创 2017-05-25 15:17:53 · 325 阅读 · 0 评论 -
数据结构之栈和队列
Num01–>栈的定义 栈(stack),有些地方称为堆栈,是一种容器,可存入数据元素、访问元素、删除元素,它的特点在于只能允许在容器的一端(称为栈顶端指标,英语:top)进行加入数据(英语:push)和输出数据(英语:pop)的运算。原创 2017-05-27 15:03:49 · 327 阅读 · 0 评论 -
二叉树深度优先和广度优先遍历
树的遍历是树的一种重要的运算。所谓遍历是指对树中所有结点的信息的访问,即依次对树中每个结点访问一次且仅访问一次,我们把这种对所有节点的访问称为遍历(traversal)。那么树的两种重要的遍历模式是深度优先遍历和广度优先遍历,深度优先一般用递归,广度优先一般用队列。一般情况下能用递归实现的算法大部分也能用堆栈来实现。原创 2017-05-29 17:28:39 · 915 阅读 · 0 评论