
算法
walking_visitor
想起什么写什么
展开
-
python数据处理--堆排序算法
堆排序思路:构建大顶堆(小顶堆) 交换堆的首尾元素,堆长度减一 交换首尾元素后,验证堆的合规性,若不合规则调整数据位置,直至合规 重复2和3步骤,直至长度为0,结束python实现_问题分析:问题1:如何构建初始堆 问题2:序列长度与节点数量的关系(node=round(length)) 问题3:每个父节点与子左节点、右节点的大小关系(father>left and fa...原创 2018-09-18 20:58:54 · 194 阅读 · 0 评论 -
python数据处理--类堆排序(堆末尾排序)
类堆排序(堆末尾排序)---不知道起什么名字,原以为是堆排序,后来才发现对堆排序理解有误,但本身也可以实现序列的排序,且思路比堆排序要简单,缺点就是当序列长度较大时,运算量过大,不过整理思路可借鉴。类堆排序思路:构建类似大顶堆(小顶堆)【即整体为二叉树结构,只考虑单独的每次父节点与子节点大小关系,不考虑后续节点的交换产生的影响】--构建完成后最顶端为本次构建序列中的最大值 交换堆的首尾元...原创 2018-09-18 21:22:04 · 361 阅读 · 0 评论 -
python数据处理--快速排序算法
常见的快速排序算法,用python实现起来如何呢,话不多说见代码:def list_sort(args_list): lista=[] listb=[] if len(args_list)<=1: return args_list else: args=args_list[0] for i in range...原创 2018-09-13 14:25:51 · 260 阅读 · 0 评论 -
python数据处理--按照数据差值大小进行聚类(归类)
近来在做数据处理的工作中,遇到了数据分类的问题,利用python的各种方便库,写了这么个以数据差值大小进行归类的方法。应用场景:有一批数据集,如list=[1,2,3,4,9,10,11,20,20,1,1.1,2.1,100],将其按照数值大小进行归类,即数值比较接近的归为一类,故需要先设置一个阈值,以进行划分。具体实现如下:其中输入参数Data_set为输入的数据集,可以为列表、数...原创 2018-09-13 09:55:48 · 7768 阅读 · 3 评论 -
python数据处理--归并排序
归并排序思路见百度百科:https://baike.baidu.com/item/%E5%BD%92%E5%B9%B6%E6%8E%92%E5%BA%8F/1639015?fr=aladdin归并排序的代码实现有递归和循环两种,其中循环的代码思路如下:对于循环思路来讲,只有归并思路的并,没有分。这是因为,在分的过程中,任意元素的位置都没有发生变化,故一个序列可直接看做是已被分解的 创建合...原创 2018-10-12 15:33:50 · 237 阅读 · 0 评论 -
python数据处理--冒泡排序
冒泡排序思路:比较相邻的元素,如果前一个比后一个大,就把它们两个调换位置。 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。 针对所有的元素重复以上的步骤,除了最后一个。 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。实现代码如下:def bubble_sort(args): args_len=len...原创 2018-10-12 16:42:39 · 283 阅读 · 0 评论 -
python数据处理--鸡尾酒排序
鸡尾酒排序思路:比较相邻的元素,如果前一个比后一个大,就把它们两个调换位置。 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。 从倒数第二个元素开始与前一个元素相比较,若小于前一个元素则进行位置交换,即倒叙进行比较排序 针对所有的元素重复以上的步骤,除了最后一个。 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。实...原创 2018-10-14 17:59:04 · 455 阅读 · 0 评论