算法导论 总结索引 | 第一部分 第一章:算法在计算中的作用

1、第一部分:基础知识 综述

1.1 第一章

对算法在现代计算系统中 地位的综述,算法是一项技术

1.2 第二章

解决对n个数的排列问题
插入排序:增量式做法
归并排序:递归技术,分治法

两种算法所需运行时间 随n的值而增长,但增长速度不同。分析了两种算法的运行时间,并给出 一种有用的表示方法 来表达这些运行时间

1.3 第三章

给出了上述表示法的 准确定义,称为 渐进表示,定义了几种渐进符号,表示算法运行时间的 上界和下界

1.4 第四章

给出了更多 分治法的例子,包括用于 两方阵相乘的Strassen方法。第四章 包含了求解递归式的方法。递归式 用于描述 递归算法的运行时间

“主方法”是一种功能很强的技术,通常用于 解决分治算法中出现的递归式

1.5 第五章

概率分析 和 随机化算法。概率分析 一般用于 确定一些算法的运行时间,由于同一规模的不同输入 可能有着内在的概率分布,因而 在这些不同的输入之下,算法运行时间 可能有所不同

假定在这些不同输入下,算法的运行时间 可能有所不同。假定算法的输入 服从某种已知的概率分布,算法的运行时间 就是在所有可能的输入下,运行时间的平均值。在其他情况下,概率分布 不是来自于输入,而是来自于 算法执行过程中 所做出的随机选择

如果 一个算法的行为 不仅由其输入 决定,还要由一个随机数生成器生成的值 来决定,那么就是一个 随机化算法

可以利用 随机化算法 强行使算法的输入服从 某种概率分布,从而 确保不会有 某一输入会始终导致算法的性能变坏;或者 对于那些允许产生 不正确结果的算法,甚至能将 其错误率 限制在某个范围内

1、算法(18)

1、算法定义:把输入 转换成 输出的计算步骤的序列

2、排序中 输入序列就是 排序问题的一个 实例
实例 是由计算该问题解 所必须的(满足 问题陈述中 强加的各种约束)输入 组成

1.1 数据结构

数据结构是一种存储 和 组织数据的方式,旨在 便于访问和修改

1.2 难题

NP完全问题:目前还不知道有效解法

1.3 并行性

为了从 多核计算机 获得最佳性能,设计算法时 必须考虑并行性

1.4 效率(22)

两个排序算法:插入排序(花费时间 c1*n^2),归并排序(c2*n*lgn
就运行时间来讲,常数因子可能远没有 对输入规模的n的 依赖性重要

你可能感兴趣的:(算法导论,算法,c++)