- 博客(13)
- 收藏
- 关注
原创 字符串与列表的基本操作方法
如何实现"1,2,3"变为[“1”,“2”,“3”] a = “1,2,3” b = a.split(",") print(b) 如何实现[“1”,“2”,“3”] 变为[1,2,3] a = [“1”,“2”,“3”] b = [] for i in a: b.append(int(i)) print(b) 拓展 字符串常⽤函数: islower():判断字符串是否是全...
2019-07-03 19:12:50
266
原创 二叉树的创建与遍历
二叉树 二叉树是每个节点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree) class Node(object): """二叉树节点类""" def __init__(self,item): self.item = item self.lchild = None se...
2019-05-24 19:56:39
257
原创 二分差找
二分法查找 二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。首先,假设表中元素是按升序排列,将表中间位置记录的关键字与查找关键字比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一...
2019-05-24 19:41:58
298
原创 归并排序
归并排序 归并排序是采用分治法的一个非常典型的应用。归并排序的思想就是先递归分解数组,再合并数组。 将数组分解最小之后,然后合并两个有序数组,基本思路是比较两个数组的最前面的数,谁小就先取谁,取了后相应的指针就往后移一位。然后再比较,直至一个数组为空,最后把另一个数组的剩余部分复制过来即可。 def merge_sort(alist): """归并排序""" # 列表长度 ...
2019-05-24 19:30:49
177
原创 希尔排序
希尔排序 希尔排序(Shell Sort)是插入排序的一种。也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。该方法因DL.Shell于1959年提出而得名。 希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文件恰被分成一组,算法便终止。 def shell_sort(ali...
2019-05-24 19:23:58
174
原创 快速排序
快速排序 快速排序(英语:Quicksort),又称划分交换排序(partition-exchange sort),通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。 步骤为: 1.从数列中挑出一个元素,称为"基准"(pivot), 2.重新排序数列...
2019-05-24 19:17:52
181
原创 插入排序
插入排序 插入排序(英语:Insertion Sort)是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,在从后向前扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。 插入排序分析: def insert_sort(alist): # 从第二个位置,即下标为1的元素开始向前插入 ...
2019-05-24 19:12:38
170
原创 选择排序
选择排序 选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。 选择排序的主要优点与数据移动有关。如果某个元素位于正确的最终位置上,则它不会被移动。选择排序每次交换一对元素,它们当中至少有一个将...
2019-05-24 19:08:33
211
原创 冒泡排序
冒泡排序 冒泡排序(英语:Bubble Sort)是一种简单的排序算法。它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。 冒泡排序算法的运作如下: 比较相邻的元素。如果第一个比第二个大(升序),就交换他们两个。 对每一对相邻元...
2019-05-22 19:41:19
164
原创 数据结构单链表和双链表
链表的定义 链表(Linked list)是一种常见的基础数据结构,是一种线性表,但是不像顺序表一样连续存储数据,而是在每一个节点(数据存储单元)里存放下一个节点的位置信息(即地址)。 单向链表图示 1 .单链表 """ 算法. 单链表示例: """ class SingleNode(object): """链表的节点类""" def __init__(self, item...
2019-05-22 19:29:39
4936
原创 网络通信udp与tcp的区别
1.网络通信udp 1.创建套接字 2.绑定ip和端口号 3.使用套接字收/发数据(记得解码(decode)和编码(encode)哦) 4.关闭套接字 #coding=utf-8 from socket import * # 1. 创建套接字 udp_socket = socket(AF_INET, SOCK_DGRAM) # 2. 绑定本地的相关信息,如果一个网络程序不绑定,则系统会随机分...
2019-05-22 19:06:09
444
原创 while循环打印*和99乘法表
1.while循环打印* 2.打印九九乘法表 # 完成九九乘法表的程序: # 分析: # 1.单行信息的组成 %d*%d=%d # 2.使用循环结构完成单个信息的多次输出 # 3.使用循环结构完成单行信息的多次输出 # 单个信息的格式: # j = 3 # k = 5 # print("%d*%d=%d" % (j,k,j*k)) # 单行信息的格式: # j = 1 # k = 5 ...
2019-05-13 15:09:38
2978
原创 sublime text 汉语化 添加插件
1.在官网下载合适自己电脑使用得sublime软件后 2.在浏览器打开https://github.com/Trojain/sublime-package这个网址 3.然后双击Default.sublime包 4.然后点击下载 5,然后按以下操作 6.进入后把下载好的包拖进去或者复制进去,关闭sublime再打开就变成汉语了! 7.添加插件先在浏览器输入https://packagecontr...
2019-05-01 01:50:43
253
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅