Python算法

  • Python里实现二分查找算法

    Python里实现二分查找算法

    二分查找也称折半查找,它是一种效率较高的查找方法。但是二分查找要求线性表必须采用顺序存储结构,而且表中元素按关键字有序排列。同时二分查找算法也是面试中经常会考到的一个算法,所以一定要弄清楚原理!二分查找的时间复杂度O(logn),至于为什么是O(logn),有兴趣的童靴可以查查推导方法。本文主要讲解Python里如何实现二分查找算法,分递归和非递归两种方式。具体代码如下:# Autor: 5bug # WebSite: http://www.XuePython.wang...

  • Python里实现求最长的回文子串长度

    Python里实现求最长的回文子串长度

    给定一个字符串,求它最长的回文子串长度,例如输入字符串'35534321',它的最长回文子串是'3553',所以返回4。最容易想到的办法是枚举出所有的子串,然后一一判断是否为回文串,返回最长的回文子串长度。不用我说,枚举实现的耗时是我们无法忍受的。那么有没有高效查找回文子串的方法呢?答案当然是肯定的,那就是中心扩展法,选择一个元素作为中心,然后向外发散的寻找以该元素为圆心的最大回文子串。但是又出现了新的问题,回文子串的长度即可能是基数,也可能好是偶数,对于长度为偶数的回文子串来说是不...

  • Python实现插入排序算法

    Python实现插入排序算法

    今天来用Python实现插入排序算法,每种算法看起来简单,但一定得自己动手写一次了解具体的原理,这样才能加深理解!插入排序原理插入排序就是每一步都将一个待排数据按其大小插入到已经排序的数据中的适当位置,直到全部插入完毕。插入排序方法分直接插入排序和折半插入排序两种,今天我们实现直接插入排序算法。Python实现插入排序算法具体代码如下:# Autor: 5bug # WebSite: http://www.5bug.wang # 吾八哥网技术交流QQ群:&nbs...

  • 用Python解答百度测试开发算法面试题

    用Python解答百度测试开发算法面试题

    吾八哥本人之前有幸能接到百度北京总部的人工智能测试开发岗位的面试机会,在二面的过程中,面试官出了一道算法题,题目是:有一组“+”和“-”符号,要求将“+”排到左边,“-”排到右边,写出具体的实现方法。很明显这是一道排序算法题,基本上随便哪种算法都能实现,但这显然不是面试官要的答案,但是何种算法最合适呢?当时紧张的气氛下,开始是想到从头循环到尾部,遇到“-”就移动到尾部,将尾部的数据跟首位的数据交换。不过面试官提醒了下说如果起始和结束都是“-”呢?一想吧,确实是的,那就死循环了,后来再仔细想了下,这个得头部和尾部一起...

1