算法导论 第二章: Getting Started
来源:互联网 发布:des加密解密算法 编辑:程序博客网 时间:2024/06/03 12:02
这一章初步介绍算法的分析以及算法的设计。贯穿整本书的主题。
算法分析:
算法的分析是针对计算机程序性能和资源利用的理论研究。常见的分析分为三类:
(1)Worst-case: [通常被关注]
T(n)=#max time on any input of size n
(2)Average-case:[有时候被关注]
T(n)=#expeced time over all inputs of size n
需要统计分布的假设,通常假设所有输入是等可能出现的。
(3)Best-case:
被称为假象(bogus),没什么用。
当我们谈论软件算法而不考虑硬件时,对运行时间常常会产生一些疑惑。因为同一个算法在不同的机器上运行的速度不同。因此我们用一个更通用的概念来分析算法的性能,即渐进分析(Asymptotic Analysis)。
渐进分析忽略那些依赖于机器的常量,不关注实际的运行时间,而关注于运行时间的增长。
以插入排序(Insertion sort)为例,算法代码如下:
其最坏情况(worst-case)下的运行时间为:
当n非常大时,运行速度慢。因此我们需要设计其他方法来加快速度。
算法设计
以归并排序(Merge sort)为例,伪代码如下:
运行时间的递归表达式为:
即:
0 0
- 算法导论 第二章: Getting Started
- 《Getting Started with D3》中文翻译(第二章)
- 《Getting Started with WebRTC》第二章 WebRTC技术介绍
- 算法导论第二章
- 算法导论第二章
- 算法导论 第二章
- 算法导论 第二章
- 算法导论-第二章
- 算法导论第二章
- 算法导论 第二章InsertSort
- 算法导论 第二章MergeSort
- 《算法导论》第二章 入门
- 算法导论第二章心得
- 算法导论:第二章总结
- 算法导论 第二章作业
- 算法导论第二章笔记
- <笔记><算法导论><第二章>
- Getting started
- 站在巨人的肩膀上,C++开源库大全
- 关于个人网站选择虚拟主机还是VPS服务器的讨论
- css嵌入任意字体
- C语言中关于环境变量的函数
- java序列化&反序列化对比
- 算法导论 第二章: Getting Started
- 字符串匹配的KMP算法
- 欢迎使用CSDN-markdown编辑器
- SAT填空题是如何出题的?
- Linux 学习 00 系统启动流程
- 在 Windows 上安装Rabbit MQ 指南
- PPTP协议握手流程分析
- ArduinoYun教程之配置Arduino Yun环境
- Hash table 学习笔记