数据结构与算法
__jiangcheng
这个作者很懒,什么都没留下…
展开
-
堆排序的Python实现
堆排序的原理就不在这里介绍了,可以参考很多文章和书籍。堆排序主要包含两个部分:堆建立和堆调整。以下是最大堆代码:def Max_Heapify(heap,heapsize,root): ''' 对一个父节点及其左右孩子节点调整;heap:list;heapsize:做数组最大限制,root:根节点位置 ''' left = 2*root + 1 #注意此处下标从0开...原创 2018-04-12 00:44:12 · 330 阅读 · 0 评论 -
快速排序的Python实现
原理不多说,直接上代码:def quick_sort(array,left,right): if left>=right: return low = left high = right key = array[low] while low<high: while low<hi...原创 2018-04-12 23:14:20 · 159 阅读 · 0 评论 -
归并排序的Python实现
归并排序的平均时间复杂度为O(nlogn),属于稳定排序。def merge_sort(a,b): """输入:已排序好的短序列a,b 输出:排序好的长序列 """ p1=p2=0 c = [] while p1<=len(a)-1 and p2<=len(b)-1: if a[p1]<=b[p2]: ...原创 2018-04-13 22:33:52 · 219 阅读 · 0 评论 -
散列表(Hash)表的理解
散列表又称为Hash表,是根据关键码值(key-value)而直接进行访问的数据结构。通过散列函数,可以将任意长度的输入变化为固定长度的输出,即散列值,从而直接进行查找。这种转化是一种压缩映射,即样本范围小于存储范围,但样本取值空间大于存储空间。 散列表需要解决两个问题,散列函数的选择和冲突的处理。 散列函数又称为Hash函数,它对不同的输出值得到一个固定长度的消息摘要。常用的...原创 2018-05-01 16:51:00 · 233 阅读 · 0 评论