算法分析
冷漠的蓝炮仗
Python是世界上最好的语言
展开
-
算法分析—大O、大Ω、大θ
简介在算法的学习中,最开始便是要学习算法的分析。学习算法分析时,我们便会接触到这么几个符号:大O、大Ω、大θ、小o、小ω。在输入规模较小,各种算法之间的时间消耗并无明显差别。只有当输入规模较大时,对各个算法之间消耗差别的对比与分析才有意义。所以上面几个符号便常用于表达当规模逐渐趋向于一个极大数时的算法复杂度。在表示一个算法时间复杂度时,我们常用如**T(n)=O(n^2)**的形式表示,而在...原创 2019-01-24 18:06:46 · 25515 阅读 · 2 评论 -
算法分析—计数排序(一种有趣的排序方法)
以前自己的博客总是零零散散,学习的东西也有记录,但是没有归纳到一块儿,后来也就慢慢丢了。原创 2019-01-24 18:41:25 · 393 阅读 · 0 评论 -
算法分析—选择排序(最简单的排序方法)
基本思想选择排序可以说是最基本简单的一种排序方法,基本思想为每次选出剩余元素中的最小值,将其放入新数组(或者从前到后交换位置),此步骤执行N次即可。算法实现import datanums = data.get_data(100)def selection_sort(nums): for i in range(len(nums)): min_index = i ...原创 2019-01-25 16:59:27 · 334 阅读 · 0 评论 -
算法分析—冒泡排序
基本思想冒泡排序算法思想也比较简单,可认为是选择排序的一种变化。冒泡排序算法的原理如下:1、比较相邻的元素。如果第一个比第二个大,就交换他们两个。2、对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。(经过此步骤,最大的元素便被换到了最后)3、依次去除最后一个元素,对剩余所有的元素重复以上的步骤。(共执行N次)算法实现import datanums = data.get...原创 2019-01-25 17:32:36 · 300 阅读 · 0 评论 -
算法分析—快速排序&主定理分析递归的复杂度
一、简介快速排序对于初学者而言算是实现较为困难的一种排序方法,而其代码的实现方法也有多种,本文采用其中一种方法实现快排,并采用 主定理 对其复杂度进行分析。二、基本思想对于一个已经排序好的数组,一定有该特性:任取一个数字,其左边的数字(若存在)全部小于该数字,其右边的数字(若存在)一定大于该数字。那么我们便可以对一个未排序数组,任取一个数字(中心数),将小于它的放左边,大于它的放右边,这样...原创 2019-01-29 11:52:07 · 965 阅读 · 0 评论