- 博客(11)
- 收藏
- 关注
原创 numpy的基本操作
数组的创建# 创建数组import numpy as npnp.array([1, 0, 1, 0, 1, 0], dtype=np.bool)np.array([1, 2, 3, 4, 5, 6])np.array(range(1, 7))np.array(1, 7)数组的形状操作# 数组的计算a = np.array([1, 2, 3, 4, 5, 6])b = np.array([6, 5, 4, 3, 2, 1])a.reshape(2, 3)b.reshape(
2021-07-21 14:42:15 82
原创 散点图、条形图、分布图、直方图示例
散点图示例# -*- coding: utf-8 -*-from matplotlib import pyplot as pltfrom matplotlib import font_managermyfont01 = font_manager.FontProperties(fname="C:\Windows\Fonts\simsun.ttc")y_3 = [11, 17, 16, 11, 12, 11, 12, 6, 6, 7, 8, 9, 12, 15, 14, 17, 18, 21,
2021-07-09 20:29:02 936
原创 数据科学库HM-用matplotlib绘制折线图示例
绘图的主线逻辑为便于理解,首先略去相关周边设置,简单将作图过程在逻辑上分为以下几部分:1.输入x、y轴变量为两个列表x = [...]y = [...]2.x轴变量要对应到x轴刻度(如果刻度用文字表示的话)plt.xticks(x, xticks) #x为自变量集合,xticks为x对应刻度的集合3.用pyplot.plot将x轴和y轴变量联系起来。这一步在两个变量间建立联系,同时按照相关设置画图。plt.plot(x, y)相关周边设置(待补充)1....
2021-07-07 21:46:01 160
原创 二叉树(概念、实现和四种遍历方式)
二叉树的基本概念二叉树是每个节点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)二叉树的性质(特性)性质1:在二叉树的第i层上至多有2^(i-1)个结点(i>0)性质2:深度为k的二叉树至多有2^k - 1个结点(k>0)性质3:对于任意一棵二叉树,如果其叶结点数为N0,而度数为2的结点总数为N2,则N0=N2+1;性质4:具有n个结点的完全二叉树的深度必为 log2(n+1)性质5:对完全二叉树,若从上至下...
2021-07-05 22:05:03 107
转载 二分法查找
搜索搜索是在一个项目集合中找到一个特定项目的算法过程。搜索通常的答案是真的或假的,因为该项目是否存在。 搜索的几种常见方法:顺序查找、二分法查找、二叉树查找、哈希查找二分法查找二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录
2021-07-04 21:49:42 70
原创 排序算法(第三部分:归并排序)
归并排序是采用分治法的一个非常典型的应用。归并排序的思想就是先递归分解数组,再合并数组。将数组分解最小之后,然后合并两个有序数组,基本思路是比较两个数组的最前面的数,谁小就先取谁,取了后相应的指针就往后移一位。然后再比较,直至一个数组为空,最后把另一个数组的剩余部分复制过来即可。# -*- coding:utf-8 -*-#归并排序def merge_sort(alist): if len(alist) <= 1: return alist el
2021-07-04 21:16:32 60
原创 排序算法(第二部分:希尔排序,快速排序)
希尔排序希尔排序(Shell Sort)是插入排序的一种。也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。该方法因DL.Shell于1959年提出而得名。 希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文件恰被分成一组,算法便终止。希尔排序过程希尔排序的基本思想是:将数组列在一个表中并对列分别进行插入排序,重复这过程,不过每次用更长的列(步长更长了,列数更少了)来进行。最
2021-07-03 22:05:44 90
原创 排序算法(第一部分:冒泡排序、选择排序、插入排序)
冒泡排序冒泡排序(英语:Bubble Sort)是一种简单的排序算法。它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。冒泡排序算法的运作如下:比较相邻的元素。如果第一个比第二个大(升序),就交换他们两个。 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。 针对所有的元素重复
2021-07-03 16:09:01 145
原创 单向循环链表(学习笔记+代码)
单向循环链表单链表的一个变形是单向循环链表,链表中最后一个节点的next域不再为None,而是指向链表的头节点。操作is_empty() 判断链表是否为空 length() 返回链表的长度 travel() 遍历 add(item) 在头部添加一个节点 append(item) 在尾部添加一个节点 insert(pos, item) 在指定位置pos添加节点 remove(item) 删除一个节点 search(item) 查找节点是否存在代码实现class Nod
2021-07-02 00:33:40 98
原创 单向链表的实现(学习摘要+代码)
单向链表单向链表也叫单链表,是链表中最简单的一种形式,它的每个节点包含两个域,一个信息域(元素域)和一个链接域。这个链接指向链表中的下一个节点,而最后一个节点的链接域则指向一个空值。表元素域elem用来存放具体的数据。 链接域next用来存放下一个节点的位置(python中的标识) 变量p指向链表的头节点(首节点)的位置,从p出发能找到表中的任意节点。节点的实现class SingleNode(): # 定义节点 def __init__(self, elem):
2021-06-30 21:26:56 93
原创 Python数据结构摘要-顺序表
顺序表的基本形式顺序表的两种基本实现方式图a为一体式结构,存储表信息的单元与元素存储区以连续的方式安排在一块存储区里,两部分数据的整体形成一个完整的顺序表对象。一体式结构整体性强,易于管理。但是由于数据元素存储区域是表对象的一部分,顺序表创建后,元素存储区就固定了。图b为分离式结构,表对象里只保存与整个表有关的信息(即容量和元素个数),实际数据元素存放在另一个独立的元素存储区里,通过链接与基本表对象关联。元素存储区替换一体式结构由于顺序表信息区与数据区连续存储在一
2021-06-29 00:01:56 135 2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人