算法
笑脸皮猴子
这个作者很懒,什么都没留下…
展开
-
算法学习(1)——算法绪论
初识算法还是在大一学习C语言时,老师在讲选择排序法和冒泡排序法听说,起初觉得很高大上;后来有了一定了解之后知道就是一种解决问题的方法,发觉算法也不过如此;接着由于机缘巧合,对计算机开始逐步深入了解,发现算法真是门大学问,简直就是计算机科学的核心竞争力。我想,随着对计算机更加深入的学习,算法还是会刷新我对它的认识。本文主要记录了算法学习过程中的一些最最基本的知识和概念。1 算法的定义解决问题W的一个算原创 2017-12-13 19:51:55 · 333 阅读 · 0 评论 -
用python实现链表
本文主要介绍链表的python语言实现。原创 2017-12-25 20:16:32 · 445 阅读 · 0 评论 -
Josephus问题的三种python解
最近学习《数据结构与算法》,里面遇到了一个比较典型的问题,即Josephus问题:假设有n个人围坐一圈,现在要求从第k个人开始报数,报到第m个数的人退出,然后从下一个人开始继续报数并按照同样规则退出,直至所有人退出,按照要求顺序输出各出列人的编号。下面简单介绍三种解法。 第一种解法:使用list,依次剔除出列人员,具体实现代码如下:def josp(n, m, k): l = 1原创 2017-12-26 17:01:10 · 2048 阅读 · 1 评论 -
KMP算法最浅显理解——一看就明白
说明KMP算法看懂了觉得特别简单,思路很简单,看不懂之前,查各种资料,看的稀里糊涂,即使网上最简单的解释,依然看的稀里糊涂。 我花了半天时间,争取用最短的篇幅大致搞明白这玩意到底是啥。 这里不扯概念,只讲算法过程和代码理解:KMP算法求解什么类型问题字符串匹配。给你两个字符串,寻找其中一个字符串是否包含另一个字符串,如果包含,返回包含的起始位置。 如下面两个字符串:char *str =转载 2017-12-27 14:56:33 · 198 阅读 · 0 评论 -
十大经典排序算法(动图演示)
十大经典排序算法(动图演示)0、算法概述0.1 算法分类十种常见排序算法可以分为两大类:非线性时间比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此称为非线性时间比较类排序。线性时间非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此称为线性时间非比较类排序。0.2 算法复杂度0...转载 2018-10-30 15:35:53 · 636 阅读 · 0 评论