
python实现《算法导论》伪代码
Richard1905
这个作者很懒,什么都没留下…
展开
-
Python实现《算法导论》伪代码:计数排序
计数排序 假设n个输入元素中的每一个都是在0到k区间内的一个整数,其中k为某个整数。当k=O(n)时,排序运行时间为Θ(n)\Theta(n)Θ(n).计数排序的基本思想是对每一个输入元素确定小于它的元素的个数,从而确定其在输出数组中的位次.程序中的A.reverse()必要,因为这样保留了在元素相等情况下相等元素的原始位次.以下为实现代码:def counting_sort(A,k):...原创 2019-04-15 16:29:45 · 507 阅读 · 0 评论 -
Python实现《算法导论》伪代码:快速排序
对于包含n个数的输入数组而言,快速排序是一种最坏情况时间复杂度为 Θ(n2)\Theta(n^2)Θ(n2)的排序算法,但是它的平均性能非常好,它的期望时间复杂度是Θ(n lgn)\Theta(n\ lgn)Θ(n lgn),而且Θ(n lgn)\Theta(n\ lgn)Θ(n lgn)中隐含的常数因子非常小。Python 实现代码:import n...原创 2019-04-13 17:49:01 · 782 阅读 · 0 评论 -
Python实现《算法导论》伪代码:堆排序
堆排序的时间复杂度是O(n lgn)O(n\ lg n)O(n lgn),是一种具有空间原址性的排序算法,任何时候都只需要常数个额外的元素空间存储临时数据。 Python 实现代码:import numpy as npdef parent(i): return(int((i-1)/2))def left(i): return(int(2*i)+1)def r...原创 2019-04-13 15:49:26 · 283 阅读 · 0 评论 -
Python实现《算法导论》伪代码:最大子数组问题
一个数组的和最大的非空连续子数组称为该数组的最大子数组。只有当数组中包含负数时,最大子数组问题才有意义。Python实现代码:def mid_cross(arr,low,mid,high): left_sum = -float('inf') cal_sum = 0 for i in range(mid,low-1,-1): cal_sum = cal_sum + arr[i] ...原创 2019-01-02 15:27:45 · 579 阅读 · 0 评论