0
推荐
1157
阅读

算法札记12——堆排序

树¶树一种抽象类型数据,用来模拟具有树状结构性质的数据集合。它是由多个有限节点组成一个层次关系的集合。特点:每个节点有0个或者多个子节点没有父节点的节点称之为根节点每个非根节点有且只有一个跟节点术语¶节点的度:一个节点含有的子树的个数称为该节点的度树的度:最大的节点的度称之为数的度叶结点或终端节点:...

发表了文章 • 2019-09-01 17:46 • 0 条评论

0
推荐
1316
阅读

算法札记11——归并排序

归并排序算法思想归并排序算法会把序列分成长度相同的两个子序列,当无法继续往下分时(也就是每个子序列中只有一个数据时),就对子序列进行归并。归并指的是把两个排好序的子序列合并成一个有序序列。该操作会一直重复执行,直到所有子序列都归并为一个整体为止。https://www.cnblogs.com/onepixel/articles/7674659.h...

发表了文章 • 2019-09-01 12:51 • 0 条评论

0
推荐
1417
阅读

算法札记10——快速排序

快速排序算法思想快速排序算法首先会在序列中随机选择一个基准值(pivot),然后将除了基准值以外的数分为“比基准值小的数”和“比基准值大的数”这两个类别,再将其排列成以下形式:[ 比基准值小] 基准值 [比基准值大]接着,对两个“[ ]”中的数据进行排序之后,整体的排序便完成了。对“[ ]”里面的数据进行排序时同样也会使...

发表了文章 • 2019-09-01 12:49 • 0 条评论

0
推荐
1145
阅读

算法札记9——希尔排序

希尔排序思想希尔排序是插入排序的一种,也称之为缩小增量排序。希尔排序是非稳定排序算法,实现过程:将记录按照下标的一定增量进行分组,对每个组进行插入排序增量逐渐减少,当减少至1时,算法终止栗子假设步长为step,对[1, 8, 2, 9, 3, 7, 4, 6, 5]进行排序,步长一般是按照折半进行选取步长取4:对[1, 3, 5],[8, 7]...

发表了文章 • 2019-09-01 12:44 • 0 条评论

0
推荐
1366
阅读

算法札记8——插入排序

插入算法思想和选择排序类似的思想:将数据分成两个部分,排好序和待排序的部分。不同之处在于选择:从未排序的部分选择最小数据放到前面排好序的数据中插入:将未排序的部分第一个数据和前面的数据比较,插入相应的位置https://www.cnblogs.com/onepixel/articles/7674659.html栗子将1看做是排好序的数据,后面是待排序...

发表了文章 • 2019-09-01 12:36 • 0 条评论

0
推荐
1194
阅读

算法札记7——栈和队列

栈概念栈是一种线性的数据结构,FILO(先进后出)的操作,可以用顺序表实现,也可以用链表来实现。想象成一个杯子,只能往上面倒水进去,把水倒出去的时候,上面的先出来。操作栈的基本操作包含:stack():创建空的栈push():入栈pop():出栈peek():返回栈顶元素is_empty():判断是否为空栈size():返回栈的元素个数代...

发表了文章 • 2019-09-01 11:44 • 0 条评论

0
推荐
1484
阅读

算法札记6——常见数据结构汇总

本篇札记中主要介绍了几种常见的数据结构,包含它们的特点,常见操作和时间复杂度等链表数组哈希表堆栈(FILO)队列(FIFO)

发表了文章 • 2019-08-27 08:48 • 0 条评论

0
推荐
1033
阅读

算法札记5——双向链表

双向链表后继节点:指向下一个节点前驱节点:指向前一个节点头节点没有前驱节点,尾节点没有后继节点实现功能该代码实现的主要是双向链表的几个常规操作is_empty()length()travel()add()append()insert()remove()search()代码实现# coding: utf-8 # 定义节点 class Node(object): def __init__(self, item): ...

发表了文章 • 2019-08-27 08:31 • 0 条评论

0
推荐
1449
阅读

算法札记4——顺序表和链表

引言题目:a**2 + b**2 = c**2,a+b+c=1000,求解a,b,c方法一 import time start = time.time() for a in range(0, 1001): for b in range(0, 1001): for c in range(0, 1001): if a + b + c == 1000 and a**2 + b**2 == c**2: print("a:{0},b:{1}, c:{2}".format(a, b, c...

发表了文章 • 2019-08-27 08:29 • 0 条评论

0
推荐
1099
阅读

算法札记3_选择排序

选择排序算法思想选择排序的思想是从待排序的数据中选出最小的值,与其最左边的数字进行交换,重复以上步骤。在序列中查找最小值使用的是线性查找。菜鸟课程选择排序-Python语言描述image.pngimage.png算法步骤1、先用list[0]和list[1]~list[len(list)]比较,如果list[0]大,交换位置,将较小值放在list[0]即首位上。2、...

发表了文章 • 2019-07-07 23:32 • 0 条评论

0
推荐
1191
阅读

算法札记2_冒泡算法

冒泡排序:冒泡排序无疑是最为出名的排序算法之一,从序列的一端开始往另一端冒泡,依次比较相邻的两个数的大小。重复性的工作直到没有可以交换的两个元素,说明数列已经排序完成。冒泡算法的时间复杂度为O(n2)。image.png算法思想比较相邻的元素。如果第一个比第二个大,就交换他们两个。每次循环固定一个数,比较的次...

发表了文章 • 2019-07-03 16:28 • 0 条评论

0
推荐
1276
阅读

算法札记1_《我的第一本算法书》

目前正在自学Python,现阶段学完了常用的对象:string、list、tuple、dictionary、set等基本对象,还有if、while、for、break、continue等控制流和循环语句,这两个礼拜学习了函数function和类属性相关的知识。笔者准备开始慢慢地进入算法啦!7月份盘它!Python数据结构与算法图片发自简书App图片发自简书App图片发自简...

发表了文章 • 2019-07-03 16:26 • 0 条评论