博客专栏  >  编程语言   >  【Python排序搜索基本算法】

【Python排序搜索基本算法】

充分利用python自己特有的优点,简洁而清晰地实现基本排序算法和基本搜索算法。本专栏假定读者有算法的基本知识,重点介绍代码的实现,一起品味python独到而优美之处吧~^_^

关注
12 已关注
12篇博文
  • 【Python排序搜索基本算法】之拓扑排序

    拓扑排序是对有向无环图的一种排序,满足如下两个条件: 1.每个顶点出现且只出现一次; 2.若A在序列中排在B的前面,则在图中不存在从B到A的路径。 如上的无环有向图,v表示顶点:v=['a',...

    2014-04-19 15:35
    5244
  • 【Python排序搜索基本算法】之堆排序

    堆是一种完全二叉树,堆排序是一种树形选择排序,利用了大顶堆堆顶元素最大的特点,不断取出最大元素,并调整使剩下的元素还是大顶堆,依次取出最大元素就是排好序的列表。举例如下,把序列[26,5,77,1,6...

    2014-04-16 21:47
    7806
  • 【Python排序搜索基本算法】之二叉树的深度和宽度

    接着上一个二叉树的主题,用python写一下求二叉树深度和宽度的代码,求深度用递归;求宽度用队列,然后把每层的宽度求出来,找出最大的就是二叉树的宽度,如下: import queue cla...

    2014-04-15 09:41
    6442
  • 【Python排序搜索基本算法】之Dijkstra算法

    Dijkstra算法和前一篇的Prim算法非常像,区别就在于Dijkstra算法向最短路径树(SPT)中添加顶点的时候,是按照ta与源点的距离顺序进行的。OSPF动态路由协议就是用的Dijkstra算...

    2013-08-04 17:50
    20908
  • 【Python排序搜索基本算法】之Prim算法

    Prim算法是实现最简单的最小生成树(MST)算法,适合于稠密图。要实现Prim算法,我们主要关注的是增量的变化,也就是从每个非树顶点到树顶点的最短距离,使得最后生成一棵包括所有顶点的树,并且这棵树的...

    2013-08-04 17:35
    5049
  • 【Python排序搜索基本算法】之二叉树的遍历

    先给出二叉树节点的python表示: class Node: def __init__(self,value=None,left=None,right=None): self.value=val...

    2013-08-01 21:20
    11667
  • 【Python排序搜索基本算法】之快速排序

    快速排序应用范围最为广泛,C语言标准库里的qsort应用的就是快速排序的方法。首先要选择一个划分元素,我在程序中选择seq[0],就是第一个元素;然后在seq[1:] 即从第二个元素到最后一个元素之间...

    2013-07-25 18:52
    3273
  • 【Python排序搜索基本算法】之归并排序

    归并排序最令人兴奋的特点是:不论输入是什么样的,它对N个元素的序列排序所用时间与NlogN成正比。代码如下: def mergesort(seq): if len(seq)<=1: return...

    2013-07-25 18:37
    11010
  • 【Python排序搜索基本算法】之希尔排序

    希尔排序是插入排序的扩展,通过允许非相邻的元素进行交换来提高执行效率。希尔排序最关键的是选择步长,本程序选用Knuth在1969年提出的步长序列:1 4 13 40 121 364 1093 3280...

    2013-07-25 18:33
    4227
  • 【Python排序搜索基本算法】之冒泡排序

    冒泡排序和选择排序类似,也是第n次把最小的元素排在第n的位置上,也是该元素的绝对位置,只是冒泡排序的过程中,其他的元素也逐渐向自己最终位置逼近。代码如下: def bubbleSort(seq): ...

    2013-07-21 19:42
    2053
  • 【Python排序搜索基本算法】之选择排序

    选择排序就是第n次把序列中最小的元素排在第n的位置上,一旦排好就是该元素的绝对位置。代码如下: def selectionSort(seq): length=len(seq) for i in r...

    2013-07-21 19:39
    2576
  • 【Python排序搜索基本算法】之插入排序

    插入排序生活中非常常见,打扑克的时候人的本能就在用插入排序:把抽到的一张插入到手上牌的正确位置上。有两种插入排序方法,一种基于比较,另一种基于交换。代码如下: 1.基于比较的插入排序: def ins...

    2013-07-21 19:34
    2691

img博客搬家
img撰写博客
img专家申请
img意见反馈
img返回顶部