美文网首页程序员
研究python算法的感悟(上)

研究python算法的感悟(上)

作者: 编程爱好者 | 来源:发表于2016-01-14 22:14 被阅读390次

       对pyhon算法的研究使我热爱这门编程语言,在我的计算机生涯中用过很多种语言,但对于快速构造原型的能力,没有任何一种能够和python相比。

    假设你有一个含有重复子项的序列,你想以最快的速度消除其中的重复,同时还不用了解许多关于序列中的元素属性信息。另外,你并不关心最后序列中的元素顺序。面对这样的一个问题,在python算法中应该如何处理呢?

    首先,在一个序列中消除重复的最快速方法取决于序列元素对一些微妙特性。例如,它们是否是可哈希的,它们是否支持比较。我们可以使用unique函数尝试三种方式,从最快的到最慢的,并让运行时异常来决定最适合此序列的方法。

     要获得最快的速度,序列中所有元素都必须支持哈希,如果它们是可哈希的,则unique函数的工作时间是线性的,即直接正比于输入序列中元素的数目。

     如果发现对元素进行哈希操作是不可能的,下一个最好的情况是序列中的元素都支持排序。如果排序也是不可能的,那么序列元素至少要支持相等测试,否则重复多概念对于它们是没有意义的。

    我们再来看一下实现FIFO容器。就是需要一个支持插入和删除元素的容器,而且第一个插入到元素也是第一个被删除到,即先进先出队列。

    我们可以做出一个python风格的实现,通过两个单项链表,用前端链表和后端链表的方法创建一个FIFO。代码如下:

    class Fifo (list):

    def_ _init_ _(self):

             self.back =[    ]

             self.append = self.back.append

        def  pop (self):

                 if not self:

                        self back.reverse(  )

                       self[ : ] = self.back

                       del self.back[ : ]

                 reture super (Fifo ,self). pop(  )

这就是在python中fifo容器的实现方法之一。

未完待续*\(^o^)/*

相关文章

  • 研究python算法的感悟(上)

    对pyhon算法的研究使我热爱这门编程语言,在我的计算机生涯中用过很多种语言,但对于快速构造原型的能力,没有...

  • Flow-Guided Feature Aggregation

    研究背景 为比赛准备,视频目标检测算法 研究参考 github代码mxnet 环境配置 python 2.7 运行...

  • Python/Numpy的一些高级用法(个人笔记)

    Python/numpy 常用与高级用法总结(实时更新)开始在商汤做算法研究员后,工作中要写大量python,但因...

  • 可判定性

    研究算法在求解问题上的能力。有些问题算法上可解,有些问题算法上不可解。 5.1 可判定语言 算法上可判定的语言。 ...

  • 个人 Python 书单

    入门: Beginning Python 数据结构: Python 数据结构 算法: Python 算法教程

  • 计算机视觉初入

    emmmm,这里先留着 关于平台 emmm先下结论,算法研究 Matlab 仍是主流,视觉应用 Python 是不...

  • 第十一章 K-Means(K均值)算法模型实现(上)

    最近打算把所有的数据挖掘领域的算法研究一遍并用python实现写成文章。本篇是对KMeans算法的上半段代码的实现...

  • 排序和查找算法-Bitmap算法

    偶然看到Bitmap算法,利用闲暇时间仔细深入研究一番,这里谈谈我的感悟。 一、算法思想 在日常编程过程中,我们熟...

  • [资源推荐] - 华校专的机器学习笔记

    来自他个人网站的介绍: 作者华校专,曾任阿里巴巴资深算法工程师,现任智易科技首席算法研究员,《Python 大战机...

  • Python 目录

    python 资料 python写的常用脚本,用到的时候快速修改 python算法教程(第一章) python算法...

网友评论

    本文标题:研究python算法的感悟(上)

    本文链接:https://www.haomeiwen.com/subject/uckhkttx.html