
算法导论
文章平均质量分 67
zjq_smile
这个作者很懒,什么都没留下…
展开
-
算法基础(一)——插入排序
一、插入排序输入:n个数的一个序列,an>;输出:输入序列的一个排列,满足a1。1. 简单介绍插入排序(Insertion Sort)的算法描述是一种简单直观的排序算法。它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序在实现上,通常采用in-place排序(即只需用到O(1)的额外空间的排序),因而在从后向前扫描过程中,需要反原创 2016-11-16 00:00:32 · 394 阅读 · 0 评论 -
【算法导论】分析算法
分析算法的结果意味着预测算法需要的资源。虽然有时候我们主要关心像内存、计算机硬件、通信带宽这类的硬件资源,但是通常我们想度量的是计算时间。一般来说,通过分析求解某个问题的几种候选算法,我们在其中选择一种最有效的算法。这种分析可能会指出不止一个的可行的候选算法,但是在这个过程中,我们往往可以抛弃几个较差的算法。在能够分析一个算法之前,我们必须要有一个能使用实现技术的模型,包括描述所用原创 2016-11-16 23:49:11 · 1217 阅读 · 0 评论 -
算法在计算机中的作用
一、算法是什么算法非形式地说,算法就是任何良定义(没有公理性的矛盾,不会推出与实际情况相悖的情况)的计算过程,该过程取某个值或值的集合作为输入并产生某个值或值的集合作为输出。这样的算法就是把输入转换成输出的计算步骤的一个序列。是描述一个特定的计算过程来实现该输入/输出关系。比如:输入序列为{31,41,59,26,41,58},排序算法将返回序列{26,31,41,41,58,69}作原创 2016-11-15 01:16:42 · 7173 阅读 · 0 评论 -
时间复杂度和空间复杂度(一)
算法效率的度量方法比较容易想到的就是我们把算法跑若干次,然后拿计时器在旁边计时,这种方法貌似不错,但是不需真正的计时器来计时,可以利用计算机计时事后统计法:这种方法主要是通过设计好的测试程序和数据,利用计算机计时器对不同算法编制的程序的运行时间进行比较,从而确定算法效率的高低。 但是,这种算法有很大的缺陷:一、必须依据算法事先编制好的测试程序,通常需要花费大量时间和精力,完了发原创 2016-11-19 23:02:13 · 1105 阅读 · 0 评论 -
时间复杂度和空间复杂度(二)
算法的时间复杂度的定义:在进行算法分析时,语句总的执行次数T(n)是关于问题规模n的函数,进而分析T(n)随n的变化情况并确定T(n)的数量级。算法的时间复杂度就是算法时间量度,记作T(N)=O(f(n))。它表示随问题规模n的增大,算法执行时间的增长率和f(n)的增长率相同,称作算法的渐近时间复杂度,简称为时间复杂度。 这样用大写O()来体现算法时间复杂度的记法,我们称之为大O算法。原创 2016-11-20 22:25:04 · 578 阅读 · 0 评论