Python
文章平均质量分 54
python
kimicren
这个作者很懒,什么都没留下…
展开
-
【Python】Anaconda+Pycharm安装及使用教程
Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。Python由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年。像Perl语言一样, Python源代码同样遵循GPL(GNU General Public License) 协议。官方宣布,2020 年1月1日, 停止 Python2的更新。Python 2.7 被确定为最后一个Python 2.x版本。 它可以在Linux、macOS以及Windows系统中搭建环境并使用,其编写的代码在原创 2022-07-10 18:56:57 · 338 阅读 · 0 评论 -
【Python】常用基本库与第三方库概述
常用Python开发基本库以及第三方库总结原创 2022-06-20 15:14:03 · 620 阅读 · 0 评论 -
【Python】批量计算文件哈希
# -*- coding: cp936 -*-# 实验作者:kimicer# 实现日期:2022-02-24# 实现功能:实现批量文件的hash计算import osimport hashlibdef findAllFile(path): for root,ds,fs in os.walk(path): for f in fs: fullname = os.path.join(root,f) yield fullname.原创 2022-02-24 11:09:14 · 1097 阅读 · 0 评论 -
【算法】python实现无向图中是否存在环判断
一、判断给定的“无向图”是不是”无环图“首先在这里我们假设不存在自环与平行边)。同时定义边数为m,顶点为n;,且分为两种情况讨论。m>n时,则无向图必有环m<n时, 第一步:删除所有度<=1的顶点及相关的边,并将另外与这些边相关的其它顶点的度减一。 # 第二步:将度数变为1的顶点排入队列,并从该队列中取出一个顶点重复步骤一。如果最后还有未删除顶点,则存在环,否则没有环# -*- coding: utf-8 -*-# /usr/bin/python# 作者:kimicr#原创 2020-12-15 16:21:48 · 2246 阅读 · 4 评论 -
【数据结构】C++实现之图结构(一)
1.基本概念1)图是由顶点的有穷非空集合和顶点之间边的集合组成,通常表示为:G(V,E),G表示一个图,V是图G的顶点的集合,E是图G边的集合2)顶点(Vertex):图中的数据元素,线性表中我们把数据元素叫元素,树中将数据元素叫结点。3)边:顶点之间的逻辑关系用边来表示,边集可以是空的。4)图分为两种有向图、无向图5)无向边(Edge):若顶点V1到V2之间的边没有方向,则称这条边为无...原创 2020-04-11 11:28:21 · 1918 阅读 · 0 评论 -
【数据结构】C++实现之二叉树结构(二)
6.线索二叉树6.1 概念1)由前面提到的链式二叉树结构,有些特殊的二叉树会存在大量的空指针且带来浪费,且又二叉树可以轻松知道左右兄弟,但是对于结点前驱与后继的是很不容易知道,只有重复遍历才行,费事费力。因此我们就提出能不能利用这些空的空间,来告诉当前结点的前驱信息【比如中序遍历CDFGHJ,那么D的前驱与后继分别是C 、F】2)我们把这种指向前驱和后继的指针称为线索,加上线索的二叉链表称为...原创 2020-04-10 17:55:17 · 320 阅读 · 0 评论 -
【数据结构】C++实现之二叉树结构(一)
1. 概念1.1 二叉树的定义二叉树( Binary Tree)是n(n≥0)个结点的有限集合,该集合或者为空集(称为空二叉树),或者由一个根结点和两棵互不相交的、分别称为根结点的左子树和右子树的二叉树组成,且具有以下特点:1.2 二叉树的特点1)每个结点最多有两颗子树,结点度最大为二2)左子树和右子树是有顺序的,次序不能颠倒3)即使某结点只有一子树,也要区分左右子树4)具有5种形态...原创 2020-04-09 17:36:31 · 2250 阅读 · 1 评论 -
【数据结构】C++实现之队列结构
1. 概念队列本质上是特殊的线性表,它是在一端(队头)进行删除操作,另一端(队尾)进行插入操作,遵守先进先出规则(FIFO)。既然队列也是线性表,当然也有两种数据存储方式:顺序存储结构,这种结构事先要基本确定队列的大小,不支持动态分配存储空间,所以插入和删除元素比较省时,但是会造成空间的浪费。 为了节省空间,后来学者提出了循环队列;链式存储结构,可以不需要事先知道队列的大小,支持动态和释放空间,...原创 2020-04-09 10:08:17 · 427 阅读 · 0 评论 -
【数据结构】C++实现之栈结构
1、概念栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶(top),相对地,把另一端称为栈底(bottom)。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。【LIFO】“last in first o...原创 2020-04-07 18:12:58 · 612 阅读 · 0 评论 -
【数据结构】C++实现之静态链表
1、概念静态链表,也是线性存储结构的一种,它兼顾了顺序表和链表的优点于一身,可以看做是顺序表和链表的升级版。使用静态链表存储数据,数据全部存储在数组中(和顺序表一样),但存储位置是随机的,数据之间"一对一"的逻辑关系通过一个整形变量(称为"游标",和指针功能类似)维持(和链表类似)。2、存储结构struct Component{ ElemType data; int cur; ...原创 2020-04-06 11:25:37 · 1845 阅读 · 1 评论 -
【数据结构】C++实现之单线性表
1、线性表详见https://blog.csdn.net/qq_30611601/article/details/79516986线性表是最基本、最简单、也是最常用的一种数据结构。线性表是数据结构的一种,一个线性表是n个具有相同特性的数据元素的有限序列。线性表中数据元素之间的关系是一对一的关系,即除了第一个和最后一个数据元素之外,其它数据元素都是首尾相接的**(注意,这句话适用大部分线性表,而...原创 2020-04-05 11:35:50 · 510 阅读 · 0 评论 -
【算法】Python & C++实现排序算法(六)之归并排序
1、归并排序归并排序(MERGE-SORT)是利用归并的思想实现的排序方法,该算法采用经典的分治(divide-and-conquer)策略(分治法将问题分(divide)成一些小的问题然后递归求解,而治(conquer)的阶段则将分的阶段得到的各答案"修补"在一起,即分而治之)。转载:https://www.cnblogs.com/chengxiao/p/6194356.html2、具体分...原创 2020-03-29 17:46:55 · 166 阅读 · 0 评论 -
【算法】Python & C++实现排序算法(五)之堆排序
1、堆排序https://blog.csdn.net/u010452388/article/details/81283998?堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏最好,平均时间复杂度均为O(nlogn),它也是不稳定排序。首先简单了解下堆结构。【类似于现实中的叠罗汉】2、具体分析堆排序的基本思想是:将待排序序列构造成一个大顶堆,此时,整个序列的最大...原创 2020-03-29 14:42:49 · 147 阅读 · 0 评论 -
【算法】Python & C++实现排序算法(四)之希尔排序
1、希尔排序希尔排序是希尔(Donald Shell)于1959年提出的一种排序算法。希尔排序也是一种插入排序,它是简单插入排序经过改进之后的一个更高效的版本,也称为缩小增量排序,同时该算法是冲破O(n2)的第一批算法之一。由于直接插入排序,应该说,它的效率在某些时候是很高的,比如, 我们的记录本身就是基本有序的,我们只需要少量的插入操作,就可以完成整个记录集的排序工作,此时直接插入很高效。 还...原创 2020-03-28 12:09:57 · 133 阅读 · 0 评论 -
【算法】Python & C++实现排序算法(三)之直接插入排序
1、直接插入排序插入排序的原理与整理扑克牌类似,其基本操作是将一条记录插入到已排好的有序表中,从而得到一个新的、记录数量增1的有序表。2、具体分析从数列第一个元素开始,约定该元素已经排好序取下一个元素,约定为待插入元素,在已经排序的元素序列中从后向前扫描,如果发现插入元素小于该元素,则将该元素位置后移一位。重复步骤2,直到找到已排序的元素小于或者等于待排序元素的位置,插入元素重复2,...原创 2020-03-28 11:39:48 · 120 阅读 · 0 评论 -
【算法】Python & C++实现排序算法(二)之简单选择排序
1、简单选择排序定义对于一个长度为N的数列,通过N-i次比较得出其中的最值,最后于第i的值交换。特点就是:比起冒泡交换的次数较少,同时无论数列顺序好坏,它的时间复杂度都是n^2,稳定排序且总体优于冒泡排序。代码实现/*作者:kimicr时间:20200327功能:简单选择排序特点:稳定且时间复杂度【n^2】*/#include"iostream"#include"Sort.h...原创 2020-03-27 16:46:43 · 125 阅读 · 0 评论 -
【算法】Python & C++实现排序算法(一)之冒泡排序
1、冒泡排序定义冒泡排序是一种原创 2020-03-27 15:42:58 · 119 阅读 · 0 评论 -
【算法】排序的基本概念与分类
1、排序的定义排序是计算机内经常进行的一种操作,其目的是将一组“无序”的记录序列调整为“有序”的记录序列。分内部排序和外部排序,若整个排序过程不需要访问外存便能完成,则称此类排序问题为内部排序。反之,若参加排序的记录数量很大,整个序列的排序过程不可能在内存中完成,则称此类排序问题为外部排序。内部排序的过程是一个逐步扩大记录的有序序列长度的过程。2、排序的稳定性由于实践中通常时根据数据的多个关...原创 2020-03-27 11:58:36 · 426 阅读 · 0 评论 -
【算法】Python & C++实现排序算法(七)之快速排序
算法思想快速排序:利用分治+递归的思想,首先在这个序列中随便找一个数作为基准数,然后将这个序列中所有比基准数大的数放在该数字的右边,比基准数小的数放在该数字的左边。然后在对这个数列两边的的子数字序列重复进行上述操作,最后即可以得到一个正确排序的数字序列,具体步骤如下。具体步骤假设现在有一个数字序列[10, 7, 8, 9, 1, 5] ,其中约定左边而left,右边为right, 现在为方便...原创 2020-03-26 11:35:14 · 169 阅读 · 0 评论 -
【Letcode】机器人大冒险python3实现
机器人大冒险力扣团队买了一个可编程机器人,机器人初始位置在原点(0, 0)。小伙伴事先给机器人输入一串指令command,机器人就会无限循环这条指令的步骤进行移动。指令有两种:U: 向y轴正方向移动一格R: 向x轴正方向移动一格。不幸的是,在 xy 平面上还有一些障碍物,他们的坐标用obstacles表示。机器人一旦碰到障碍物就会被损毁。给定终点坐标(x, y),返回机器人能否完好地到达...原创 2019-10-22 09:39:06 · 381 阅读 · 0 评论 -
【吴恩达】《神经网络和深度学习》第二周编程作业
# -*- coding: utf-8 -*-# /usr/bin/python# 作者:kimicr# 实验日期:201904026# Python版本:3.6.3# 《深度学习与神经网络》第一课第三周编程作业# 创建一个小型神经网络的logsitic回归,并用来识别cat#导入用到的包import numpy as npimport matplotlib.pyplot as...原创 2019-05-10 08:59:53 · 303 阅读 · 0 评论 -
【吴恩达】《神经网络和深度学习》第三周编程作业
# -*- coding: utf-8 -*-# /usr/bin/python# 作者:kimicr# 实验日期:201904026# Python版本:3.6.3# 《深度学习与神经网络》第一课第三周编程作业# 建立一个简单神经网络,它有一个隐藏层,并用来进行二分类,其中搭建神经网络步骤如下:# 1、定义神经网络结构;2、模型参数初始化;3、实现前向传播、损失函数、实现后向传播、...原创 2019-05-12 08:53:01 · 539 阅读 · 0 评论 -
【吴恩达】《神经网络和深度学习》第四周编程作业
# -*- coding: utf-8 -*-# /usr/bin/python# 作者:kimicr# 实验日期:20190510# Python版本:3.6.3# 《深度学习与神经网络》第一课第四周编程作业# 建立一个L层深度神经网络实现二分类import numpy as npimport h5pyimport matplotlib.pyplot as pltfrom...原创 2019-05-12 11:17:26 · 1256 阅读 · 0 评论 -
【算法】python实现最短路径Dijkstra算法
# -*- coding: utf-8 -*-# /usr/bin/python# 作者:kimicr# 实验日期:20190827# Python版本:3.6.3# 解决边的权重非负的最短路径问题的经典Dijkstra算法(适用范围:有向图、非负权重)# 注意:最小路径不唯一from collections import dequeimport mathinf = mat...原创 2019-08-30 10:59:11 · 1179 阅读 · 0 评论 -
【算法】python实现最短(长)路径Bellman-Ford算法
# -*- coding: utf-8 -*-# /usr/bin/python# 作者:kimicr# 实验日期:20190827# Python版本:3.6.3'''功能:解决最短路径问题的经典Bellman-Ford算法注意事项:最短路径不唯一,可以多次处理同一个顶点,直到找到最短路径,可以处理负权重、负权重环,但是负权重环必须是独立的,即起点S可达的顶点V的路径上的某个顶点...原创 2019-09-05 21:09:33 · 3900 阅读 · 2 评论 -
【算法】python实现无环加权有向图的最短(长)路径算法AcyclicLP
# -*- coding: utf-8 -*-# /usr/bin/python# 作者:陈仁# 实验日期:20190827# Python版本:3.6.3# 无环加权有向图的“最长路径”算法(含“负权重”边)'''思路:寻找的起点到各点的最长路径,其实修改最短路径算法AcyclicLP就可以得到主要变化为:设把初始起点到各顶点的距离从“inf”变 "-inf"; 边松弛条件改变,...原创 2019-09-05 21:18:00 · 4412 阅读 · 0 评论 -
【算法】python实现优先级限制下的并行任务调度问题的关键路径算法CPM
# -*- coding: utf-8 -*-# /usr/bin/python# 作者:kimicr# 实验日期:20190827# Python版本:3.6.3'''问题描述: “并行任务调度”,给定一组需要完成的任务和每个任务所需要的时间,以及一组关于任务完成的先后次序的优先级限制。在满足限制条件的前提条件下,该如何在若干相同处理器上安排任务并在最短的时间内完成所有任...原创 2019-09-05 21:21:11 · 961 阅读 · 0 评论 -
【算法】python有向图中的最优路径
给定有向图一起点S与顶点V,判断S与V之间是否存在路径,若有,找出最短的路径# -*- coding: utf-8 -*-# /usr/bin/python# 作者:kimicr# 实验日期:20190322# Python版本:3.6.3# 给定有向图一起点S与顶点V,判断S与V之间是否存在路径,若有,找出最短的路径# 分析:用广度优先搜索S到各个点的路径,再用深度优先搜索找到...原创 2019-05-03 19:42:27 · 3015 阅读 · 0 评论