摘要:
快速排序算法又称划分交换排序(partition-exchange sort),一种排序算法,最早由东尼·霍尔提出。在平均状况下, 排序n个项目要O(nlogn)次比较。在最坏状况下则需要O(n*2)次比较,但这种状况并不常见。事实上,快速排序通常明显比 其他算法更快,因为它的内部循环(inner 阅读全文
摘要:
冒泡排序是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。 走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换 慢慢“浮”到数列的顶端。冒泡排序对n个项目需要O(n*2)的比较次 阅读全文
摘要:
不知不觉中,在一家创业公司中已经待了两年有余了。两年时间,对于在一家 创业公司来说,时间的确不短了。这两年中,也感悟到了不少东西。所以,应该梳理 一下了,看一看前方的路该怎么走。 前段时间和一位前辈聊天,聊到来这家创业公司的初衷时,发现了一个致命的 漏洞。来创业公司的目的是什么?我很清楚当初的想法, 阅读全文
摘要:
在散列中,链接法是一种最简单的碰撞解决技术,这种方法的原理就是把散列到同一槽中的所有元素 都放在一个链表中。 链接法有两个定理,定理一: 在简单一致散列的假设下,一次不成功查找的期望时间为O(1 + n) 定理二: 在简单一致散列的假设下,平均情况下一次成功的查找需要的时间为O(1 + n) 该方法 阅读全文
摘要:
Python标准库中的random函数,可以生成随机浮点数、整数、字符串,甚至帮助你随机选择列表序 列中的一个元素,打乱一组数据等。 random中的一些重要函数的用法: 1 )、random() 返回0<=n<1之间的随机实数n;2 )、choice(seq) 从序列seq中返回随机的元素;3 ) 阅读全文
摘要:
散列表(Hash table,也叫哈希表),是根据键(Key)而直接访问在内存存储位置的数据结构。也就是说,它通过计算一个关于键值的函数, 将所需查询的数据映射到表中一个位置来访问记录,这加快了查找速度。这个映射函数称做散列函数,存放记录的数组称做散列表。 一个通俗的例子是,为了查找电话簿中某人的号 阅读全文
摘要:
社会突飞猛进的发展,就会压迫着社会的人要不断地去学习,去掌握新知识,才能适应社会的发展。可是,在学习的过程中,不同的人就拉开了差距。有人学习很快,能迅速的掌握新东西,有人对学习新东西如乌龟行走。究其根本,除了先天的智商有差别外,更多的是自身的原因。比如,花费的时间不够多,学习方法不得当。 最近无意中 阅读全文
摘要:
相比2016年的波澜起伏,2017多了一份平静和清淡。不过,平静的生活下,总有一颗飞向远方的心。 在这一年将近结束的时候,总结一下自己的工作,生活和学习。也顺便展望一下未来的2018,看看有哪些 美好的生活在前面等着我。 在通过2016的来创业公司的新业务磨合期,2017年中,这边对创业公司的业务逐 阅读全文
摘要:
二分查找算法也成为折半算法,对数搜索算法,一会中在有序数组中查找特定一个元素的搜索算法。搜索过程是从数组中间元素开始的 如果中间元素正好是要查找的元素,则搜索过程结束;如果查找的数大于中间数,则在数组的前一半查找,否则,在后一半查找。直到找到相应 数据止。 该算法的的复杂度为 O(log n),相比 阅读全文
摘要:
一. arm-linux-objdump常用来显示二进制文件信息,常用来查看反汇编代码 二. 常用选项: 1.-b bfdname 指定目标码格式 2.—disassemble或者-d 反汇编可执行段 3.—dissassemble-all或者-D 反汇编所有段 4.-EB,-EL指定字节序 5.— 阅读全文
摘要:
顺序查找算法是一种很基本的查找算法,该算法的复杂度一般是最大是O(n),假如加上顺序查找,算法的复杂度 还要降一倍,为O(n/2)。 Python的代码实现如下所示: 运算结果: 阅读全文
摘要:
最近在调试usb audio设备,由于使用的是自己的audio 设备,所以要频繁的更换采样率,可是 在win10中经常出现一些莫名其妙的问题,今天这个问题就是折腾了我好久才搞定的。 当把usb audio配置成固定采样率的情况下,音频设备一直无法使用,一直报这个错误,(win10 音频服务未响应) 阅读全文
摘要:
反转链表一般有两种实现方式,一种是循环,另外一种是递归,前几天做了一个作业,用到这东西了。 这里就做个记录,方便以后温习。 递归的方法: 运行结果: 阅读全文
摘要:
1、函数内部的变量名如果第一次出现,且出现在=前面,即被视为定义一个局部变量,不管全局域中有没有用到该变量名,函数中使用的将是局部变量,例如: [python] view plain copy num = 100 def func(): num = 123 print(num) func() [py 阅读全文
摘要:
作为一个非常实用的一种数据结构,排序链表用在很多方面,下面是它的python代码实现: Node的代码: 运行结果: 阅读全文
摘要:
双端队列:英文名字:deque (全名double-ended queue)是一种具有队列和栈性质的抽象数据类型。 双端队列中的元素可以从两端弹出,插入和删除操作限定在队列的两边进行。 双端队列可以在队列任意一端入队和出队。此外,经常还会有一个查看(Peek)操作,返回该端的数 据而不将其出队。 p 阅读全文
摘要:
使用打印机的模型是queue中最经典的应用之一,这里就回顾一下queue在这里的使用方法和 起的重要作用。 为了仿真打印状态,这里需要把真实环境中的三个物理模型要建模出来,分别是:打印者,打印 任务,和处理队列。 首先打印者的实现如下所示: 打印任务的代码实现: 任务处理: 测试结果: 阅读全文
摘要:
random.randomrandom.random()用于生成一个0到1的随机符点数: 0 <= n < 1.0 random.uniformrandom.uniform(a, b),用于生成一个指定范围内的随机符点数,两个参数其中一个是上限,一个是下限。如果a > b,则生成的随机数n: a < 阅读全文
摘要:
最近在学习Python的时候,遇到了一个不同文件中类无法调用的问题,搜了很多,发现很多人针对 这个问题都说的相当含糊,让我费了好大劲才把这个东东搞明白。记录一下,权且温习。 调用分两种,一种是同种文件路径下的调用,这种一般的方法是: 比如,文件b.py 调用a.py中的函数testa(): 方法一: 阅读全文
摘要:
约瑟夫问题:是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。 从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列; 依此规律重复下去,直到圆桌周围的人全部出列。通常解决这类问题时我们把编号从0~n-1,最后[1] 结果 阅读全文
摘要:
最近在实现算法的过程中,遇到了使用几个数学计算函数,感觉挺有意思,就记下来 方便以后使用。 ceil(x)返回不小于x的最小整数值(然后转换为double型)。 floor(x)返回不大于x的最大整数值。 round(x)返回x的四舍五入整数值。 代码: 运行结果: 阅读全文
摘要:
计算机的世界是二进制的,而人类的世界是十进制的,当数学公式用计算机表达时,经常 要转换。这就用到了进制的转换。 首先,我们先了解一下二进制和十进制的发展历史: 二进制: 现代的二进制首先由大数学家莱布尼兹设计的。 1854年,英国数学家乔治·布尔发表了一篇里程碑式的论文,其中详细介绍了一种代数化的逻 阅读全文
摘要:
很多书籍都在讲stack的概念和使用方法,等我们把概念熟悉后,发现不知道在什么场景下使用 该结构体,这里就列几个实用的例子,让大家了解一下stack在实际中的用处和厉害之处。 由于stack中的特点是可以成对的pop和push的,针对成对出现的东西,是有用武之地的,特别是 处理一些平衡符号方面,是有 阅读全文
摘要:
在计算机的世界中,同一个问题,使用不同的数据结构和算法实现,所使用的资源有很大差别 为了方便量化python中算法的资源消耗,对性能做测试非常有必要,这里针对stack做了python语言 下的性能分析。为后续算法分析做个基础。 代码: 在linux上运行的主频为2.4G的系统上运行结果: 可以看出 阅读全文
摘要:
栈(stack)又名堆栈,它是一种运算受限的线性表。其限制是仅允许在表的一端进行插入和删除运算。 这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新 元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元 素删除掉,使 阅读全文
摘要:
昨天在公司面试了一个前辈,前辈在半导体领域深耕了将近二十年了,应该算是国内第一批 做半导体的程序员了。从前辈的口中得知,他待了将近十年的外企由于这这个领域,PK不过中国 公司,他们团队被解散了。 从面试的过程来看,该前辈的技术功底很深厚,是个本本分分做技术的人,对行业的理解是 比较深刻的,像这样的人 阅读全文
摘要:
通过help 查看相关函数的帮助文档 >>>help (chr) chr(...) chr(i) -> character Return a string of one character with ordinal i; 0 <= i < 256. 参数是0 - 256 的一个整数,返回值是当前整数 阅读全文
摘要:
ones是numpy的一个内置函数,作用是生成参数为一的数组。英文解释: Return a new array of given shape and type, filled with ones. 例子: 阅读全文
摘要:
传统除法:直接后缀小数点,同样结果是和最大的小数点对齐 精确除法:除法总是会返回真实的商,不管操作数是整形还是浮点型。执行from __future__ import division 指令就可以做到这一点。 地板除法:从Python2.2开始,增加了一个操作符 // ,以执行地板除://除法不管操 阅读全文
摘要:
使用python数据处理,代码如下: 发现了这样一个错误: 查找原因,发现是python中除法法则没有搞清楚导致的,正确的写法应该是 阅读全文