![](https://img-blog.csdnimg.cn/20190413174924237.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
基于Pyhton的算法实现
文章平均质量分 97
本专栏专注于使用Python语言,实现各种算法,思考如何充分利用语言特性,写出高运行效率的代码
小柯同学_2019
想做什么,就现在,马上做~
展开
-
Leetcode 刷题 (1) 简单单链表:合并两个有序链表
链表删除元素后,注意不需要再调用 p = p.next, 因为 p.next = p.next.next, 已经更好了p.next了!递归虽然可以快速求解问题,然而却不是解法最快的方法。可以先快速求解问题,不过为了更快解答,还是需要非递归的解法。...原创 2020-02-27 12:51:49 · 327 阅读 · 1 评论 -
算法学习(16)阶乘求解(考虑大数组的阶乘求解)
前言这一篇博客的价值,在于使用了一种处理非常大的数字乘积的方法,这些数字是存储在数组中的,这样,理论上,处理多大的数相乘,都不会有任何问题。提纲1.其实,现在的Python, 处理数字的能力已经大为提升,处理500!的没问题,而且速度也很快在教材里,13!就溢出了……测试遇到了递归溢出的问题,在998!的时候出现……具体算一算,那python默认的递归层数就是998层左右?而使用循环...原创 2019-04-26 15:56:50 · 1525 阅读 · 0 评论 -
Python学习阶段性总结(3.18-4.18)(1)
系列说明每个月的18号,就做一次小总结,把本月掌握的知识,学到的经验,汇总起来,也算是对自己的一钟督促。原创 2019-04-21 16:28:36 · 220 阅读 · 0 评论 -
算法学习(15)哥德巴赫猜想(多种解法,效率差了4千倍……)
前言提纲探讨判断,if 语句的层次是越多越慢吗?测试了 n = 100000(10万)下图只有一个if两个if但两个If 的也有 41s 的情况重大突破把坚持数字是否在数组中,变成直接查找读取,速度快到不敢想象,代价依然是空间。升级的代码def Test2(maxLimit, primeList, lenth, rawList): for i in rang...原创 2019-04-18 00:32:57 · 2057 阅读 · 0 评论 -
算法学习(14)(番外) 探讨Python中for循环的可替代性
前言上星期看到一篇推送,很标题党,“我不想用for循环”,里面提及了各种替代for循环的方法,然而,我能感觉到的,有些只是格式上的重新组织(这点也是作者自己说的,为了更好的可读性),于是,这里我想试试,是否用作者的方法,程序运行速度会快一点。微信推送的原文...原创 2019-04-16 22:17:46 · 748 阅读 · 0 评论 -
算法学习(13)四种常用排序算法比较和选择 (内含运行时间比较)
前言这部分内容基本来自于教材,因为十分简单和直接。出乎我意料的是,排序算法,再怎么变,基本都是O(n2)O(n^2)O(n2) 的复杂度,只有快排和推排序法,因为一些巧妙的设计,稍微有了提升,于是,选排序法,其实没什么悬念。...原创 2019-04-13 23:05:52 · 1543 阅读 · 0 评论 -
算法学习(12)数学问题求解系列(9)求最大公约数(递归和非递归解法)
致谢小小庆祝下哈,从2019.3.18 注册博客,到今天4.13,我终于实现了博客排名前100万的小目标啦~ 谢谢各位朋友们的支持,爱你们哦 ~ 不过呢,这只是一个新的起点,通过写博客,不断总结提升自己,才是最重要的目标啊!不忘初心,放得始终!前言这一期的内容,求最大公约数,内容相对简单,刚好可以让我从昨天的长文缓一缓。问题求给定两个整数的最大公约数名词解释公约数,就是能同时整除给定...原创 2019-04-13 14:31:41 · 608 阅读 · 0 评论 -
算法学习(11)数学问题求解系列(8)素数求解(多种方法比较)(结尾有彩蛋~)
前言提纲都是比较 10万以内的查找速度常规方法def findPrimeNum(maxLimit): primeNunList = [1]*maxLimit # 创建与待研究范围一样的数组; 一开始假设都是,因为排除合数比挑出素数简单,排除只需要一个整除即可! for num in range(2, maxLimit): # 全部数都要遍历一遍 fo...原创 2019-04-12 12:50:03 · 382 阅读 · 1 评论 -
算法学习(10)数学问题求解系列(7)由亲密数问题启发的运行效率问题讨论(值得一看)
前言这一篇会探讨 while 循环 和 for 循环,二者的运行效率竟然不一样!同时,会把之前一些遗漏的知识点补齐。原创 2019-04-08 22:15:33 · 322 阅读 · 0 评论 -
算法学习(9)数学问题求解系列(6)自守数(普通解法及拓展)
前言自守数也是一个很容易用编程解决的数学问题,不过,教材提到的一个点,值得深入研究。问题计算指定范围内的所有自守数名词解释自守数,指一个数平方结果的后几位,等于这个数本身。如 25×25=62525\times25=62525×25=625, 625625625的后两位等于乘数25,所以是一个自守数。编程思路很容易发现,一个数是几位数,那么就得截取乘积的后几位数,所以,得编写确定一...原创 2019-04-07 22:36:27 · 1061 阅读 · 0 评论 -
算法学习(8)数学问题求解系列(5)水仙花数
前言水仙花数,问题非常直观也非常简单,直接根据问题表述写程序即可,不用考虑优化问题。问题水仙花数,是一个三位数,它的数值等于各个位置的数字的立方和,如153=13+53+33153 = 1^3+5^3+3^3153=13+53+33 ,求出所有3位数的水仙花数。编程思路把数numnumnum的每一位单独提取出来比较实现代码#!/usr/bin/env python# -*- ...原创 2019-04-06 23:09:42 · 598 阅读 · 0 评论 -
算法学习(7)数学问题求解系列(4)求解完数(升级版,速度瞬间提升)
前言在上一篇讨论亲密数加速版本(传送门)的博客中,对求因子和的函数进行了改造,即for循环的范围,从n/2+1n/2 +1n/2+1 改为 n+1\sqrt{n}+1n+1,程序的运行立马有了n\sqrt{n}n的提升。由于亲密数的第一步求因子和,正是求完数的主要步骤,所以,如果在完数程序中,尝试加速程序,会有什么效果呢?更新的代码import timeimport math# ...原创 2019-04-05 23:20:27 · 327 阅读 · 0 评论 -
算法学习(6) 数学问题求解系列(3)亲密数(开挂加速版,必看)
前言上一篇博客介绍了亲密数的常规解法(点击传送门回顾)。这篇介绍的算法,运用了空间换时间的编程思路,极大的缩短了程序的运行时间。加速思路求解10万以内的亲密数,也就是,从2到10万,每一个数肯定是都要求因子和,这一步省不了,依然要求上一个解法中,我们每求一个因子和后,把它当成新的数,再求一次因子和,这就相当于我们把2到10万,又求了一次因子和,自然时间就很长了于是,假如我们把第1步,求...原创 2019-04-05 15:46:25 · 687 阅读 · 0 评论 -
算法学习(5) 数学问题求解系列(2)亲密数
前言这篇是本系列的第二篇,我开始感觉到这些练习的价值了。这些问题,咋一看,超级简单,不过真正动手,很考验对编程语言的理解和掌握程度,所以不要小看这些练习哦。这些问题还有另一个特点,直接编写程序找答案,运行会很慢,特别需要多动脑筋想更高效的求解方法。问题求 10,0000 (10万) 以内的亲密数。名词解释亲密数,假设有两个不相等的整数a 和 b, a 的因子和等于b的因子和。这里的因子...原创 2019-04-04 17:47:21 · 884 阅读 · 0 评论 -
算法学习(4)数学问题求解系列(1)求解完数
前言不知不觉,已经有3天多没有写博客了,意味着我又很多天没有码代码了……学编程最重要的一点,就是Keep Coding Everyday。我现在有深刻体会了!今天要写的程序非常简单,而我却花了很长时间去写,说明熟练度远远不够……是的,现在的生活很忙碌了,很多要兼顾,但自我提升,不都是各种时间协调,安排出时间来的吗?现在哪有只需要学习其他都不用考虑的生活啊,当然, 有也一定很无聊。希望接下来大家多...原创 2019-04-03 11:58:45 · 707 阅读 · 0 评论 -
算法学习(3)常用排序算法合集(2)
目录原创 2019-03-30 18:24:11 · 275 阅读 · 0 评论 -
算法学习(2)常用排序算法合集
前言原创 2019-03-24 23:39:12 · 309 阅读 · 0 评论 -
算法学习(1)排序算法 前期准备:生成随机数组
简介原创 2019-03-22 11:32:21 · 351 阅读 · 1 评论