![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Python算法题实现
文章平均质量分 63
IronSimon
这个作者很懒,什么都没留下…
展开
-
数独生成的python实现(半成品-未完待续)
数独的规则,简而言之,在9*9的表格里,填入数字,填入的数字在其所在的3*3区域里是唯一的,在其所在的行里、列里也是唯一的,具体的参照该词条的解释。数独的生成思路采用倒着来拆解问题:对于每一个小方块填入数字,需要知道该位置能填入的数字集合(final_useInBit); 从规则推出:final_useInBit = 所在3*3区域的可取数集 - 所在列数集 - 所在行数集; 要...原创 2018-10-11 15:48:12 · 1320 阅读 · 0 评论 -
约瑟夫问题的python实现
约瑟夫问题约瑟夫问题,简而言之,即N个人围成一圈,从第一个开始报数,第M个出局,然后下一个人重新报数。例如N=6,M=5:初始座位:1、2、3、4、5、6第一轮:从左往右数,5出局,序列重置为:1、2、3、4、6;第二轮:从6开始数,4出局,序列重置为:1、2、3、6;第三轮:从6开始数,6出局,序列重置为:1、2、3;.....如此循环直到最后一个,则:出局的顺序是:5,4,...原创 2018-10-12 13:59:59 · 9776 阅读 · 1 评论 -
二叉树遍历的python实现(前序、中序、后序)
实现二叉树的三种遍历方式,未完善二叉树的生成、树的程序遍历等,本程序仅做记录,程序中构造的二叉树结构如下:# -*- coding: utf-8 -*-"""Created on Thu Sep 13 16:46:46 2018Description:二叉树Version: @author: HJY"""class Node: def __init_...原创 2018-10-15 11:56:54 · 945 阅读 · 0 评论 -
斐波那契数列的python实现(递归与list实现)
斐波那契数列概念斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波纳契数列以如下被以递推的方法定义:F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>...原创 2018-10-15 12:18:20 · 1652 阅读 · 0 评论 -
汉诺塔问题求解的Python实现
问题描述:有三根杆(编号A、B、C),在A杆自下而上、由大到小按顺序放置n个盘(详细的图,自己查询)游戏的目标:把A杆上的金盘全部移到C杆上,并仍保持原有顺序叠好。操作规则:每次只能移动一个盘子,并且在移动过程中三根杆上都始终保持大盘在下,小盘在上,操作过程中盘子可以置于A、B、C任一杆上误区 这个问题如果陷进去每一步的细节,那将是错误的,比如考虑每一步移动时是否比目标杆的顶端盘...原创 2018-10-16 09:35:42 · 631 阅读 · 0 评论 -
冒泡排序法&定向冒泡排序法的Python实现
冒泡排序法冒泡排序法:每轮对相邻的两者进行比较,若顺序不对,则进行位置互换,每轮都将使每轮的最后一位是该轮的大数。比如在数列:[71, 1, 14, 78, 75, 38, 10, 49, 40, 95]第一轮交换:71>1 ==> [1, 71, 14, 78, 75, 38, 10, 49, 40, 95]; 71>14 ...原创 2018-10-17 14:42:54 · 2455 阅读 · 0 评论 -
快速排序法的Python实现
快速排序法的原理对于一乱序数组,进行排序,排序过程:任取一位作为flag(比较位),比它小的在左边,比它大的在右边,这样的操作为一轮快速排序;对flag两边的序列分别执行同样的操作,n轮后,数组有序;对于每一轮快速排序,又可细化为如下过程:对于待处理序列A,有序列长度为length,赋索引 i = 0 ,j = length -1, 取序列第一个元素作为flag, flag = A[...原创 2018-11-12 15:55:12 · 315 阅读 · 0 评论 -
堆排序算法基于二叉树数据结构的python实现
堆排序的原理略,此处只是作为记录,提供整个代码的实现,其中每个细节会给出注释和函数的设计思路(代码末尾)。注:堆排序算法的实现,以数组结构来实现要简洁高效!此处只是作为练手使用,由于堆排序的数组实现已经有很多,此处略。自定义模块:这个模块我们只用到其节点对象的创建、根据数组生成完全二叉树的函数、根据节点在二叉树的层序(层序遍历时的顺序)找到节点的引用等信息的函数。至于其他的遍历等函数...原创 2018-11-22 11:02:51 · 253 阅读 · 0 评论 -
二叉查找树的Python实现
二叉查找树,即左孩子小于根节点,右孩子大于根节点。对于每一次新的节点插入操作,依据这个规则进行插入,最终使得树的最右端为最大值,最左端为最小值。由于二叉查找树是进入AVL平衡二叉树的学习的前提,因此先进行这个的实现。 可以通过对节点的info属性进行赋值,以作查找验证,直接运行也可以# -*- coding: utf-8 -*-"""Created on Tue Dec ...原创 2018-12-04 15:37:10 · 460 阅读 · 0 评论