一、算法问题求解基础
1 算法是求解一类问题的任意一种特殊的方法,具有五个特征:输入、输 出、确定性、可行性(执行有限次内解决)、有穷性。而当一个算法以计算机程序语言描述时,即为程序。
2 问题求解过程:理解问题——设计方案——实现方案——回顾复查。
3 算法一般分为两类:精确算法与启发式算法。前者保证精确获得问题的解,后者通过使用某种规则、简化或智能猜测来减少问题求解时间,其求解时间因实例而异,结果往往不能保证是问题最优解甚至可能不是可行解。

二、算法分析基础
1 良好的算法具备以下四个特性:正确性、简明性、高效率(存储空间利用比高,时间利用效率高)、最优性(执行时间达到求解该类问题的所需时间的下届)。其中,算法的正确性即引出程序的健壮性(当向程序输入不合法的数据时,程序能够做出适当处理而不引起严重后果)。
2 一个程序的运行时间的主要影响因素包括:程序所依赖的算法、问题与数据规模、计算机系统性能。
3 算法的时间复杂度即算法运行所需的时间,主要取决于问题规模与输入数据。对于相同的问题规模,根据输入数据的不同,算法也会有不同的时间开销,分为最好/最坏/平均时间复杂度。
4 对于算法时间复杂度的分析方法包括事前分析与事后测试。实例程序往往繁杂,可使用程序步的概念合并若干条语句,从而简化对时间复杂度的分析。
float Sum(float list[],const int n)
{
float tempsum=0.0;
count++;
for(int i=0;i<n,i++){
count++;
tempsum+=list[i];
count++;
}
count++;
count++;
return tempsum;
}
该数组求和程序中添加count++可实现对程序步数的计算,上述实例中总程序步数为2n+3。
5 对于算法空间复杂度,通常指算法运行所需的存储空间,包括固定空间需求(与问题实例规模无关)与可变空间需求。算法空间复杂度一般按最坏情况来分析。
6 引入多种记号的渐进表示法来从数量级的层面进行算法时间复杂度的事前分析。

算法设计与分析基础知识总结——dayOne相关推荐

  1. 第一章 算法设计与分析基础知识

    系列文章目录 第一章 算法设计与分析基础知识 第二章 算法的分治策略 第三章 算法的动态规划 第四章 算法的贪心法 -- @[TOC](这里写目录标题) # 一级目录 ## 二级目录 ### 三级目录 ...

  2. 算法设计与分析基础知识

    一.算法设计基础 算法是(algorithm)是对特定问题求解步骤的一种描述,是指令的有限序列. 算法的五个特性: 输入:一个算法可以有零个或多个输入. 输出:一个算法有一个输出或多个输出. 有穷性( ...

  3. 计算机算法设计与分析读后感,算法设计与分析基础经典读后感有感

    <算法设计与分析基础>是一本由Anany levitin著作,清华大学出版社出版的胶版纸图书,本书定价:49.00元,页数:409,特精心从网络上整理的一些读者的读后感,希望对大家能有帮助 ...

  4. 算法设计与分析基础-笔记-上

    算法设计与分析基础 绪论 什么是算法 一系列解决问题的明确指令,对于符合一定规范的输入,能够在有限的时间内获得要求的输出. 例子:最大公约数:俩个不全为0 的非负整数 m m m和 n n n的最大公 ...

  5. 算法设计与分析基础第三版

    课后题答案 一.算法级基础知识 1.算法的基本概念 解决问题的确定方法和有限步骤称为算法,对于计算机科学来说,算法指的是对特定问题的求解步骤的一种描述,是若干条指令的有穷序列.并有以下特性:输入.输出 ...

  6. 算法设计与分析基础知识点

    前言:全文参考徐承志老师的PPT 适合期末复习,查缺补漏,有缺漏或错误欢迎指正,后面的第九章内容之后会继续补充. 目录 一.算法基础概念 二.算法分析基础 1.概念 2.算法设计的一般过程 3.时间复 ...

  7. 算法设计与分析基础 第一章谜题

    习题1.1 10.b 欧几里得游戏 一开始,板上写有两个不相等的正整数,两个玩家交替写数字,每一次,当前玩家都必须在板上写出任意两个板上数字的差,而且这两个数字必须是新的,也就是说,不能与板上任何一个 ...

  8. 算法设计与分析基础 第六章谜题

    习题6.1 9.数字填空 给定n个不同的整数以及一个包含n个空格的序列,每个空格之间事先给定有不等(>或<)符号,请设计一个算法,将n个整数填入这n个空格中并满足不等式约束.例如,数4,6 ...

  9. 算法设计与分析基础 第五章谜题

    习题5.1 11.Tromino谜题 Tromino是一个由棋盘上的三个1×1方块组成的L型骨牌.我们的问题是,如何用Tromino覆盖一个缺少了一个方块的2n×2n棋盘.除了这个缺失的方块,Trom ...

  10. 算法设计与分析基础 第七章谜题

    习题7.1 6. 祖先问题要求在一棵给定的n顶点二叉树中,确定一个顶点u是否是顶点v的祖先.设计一个属于O(n)的输入增强算法,使我们可以在常量时间内获得树的每一对顶点的足够信息,来对问题求解. 分析 ...

最新文章

  1. Git GitLab 使用及规范
  2. Java-优秀博客推荐
  3. iphone Quartz2D使用心得
  4. JDK1.5 与 JDK1.6的新特性
  5. Flink从入门到放弃之源码解析系列-第1章 Flink组件和逻辑计划
  6. 多伦多大学计算机科学升大二,加拿大多伦多大学优势专业排名_加拿大多伦多大学优势专业盘点...
  7. 计算机专业审核作业指导书,专业审核作业指导书
  8. 集群中运行Tachyon(译)
  9. 计算出 3 至 1000 范围内最大的十个素数,放入数组中,并计算出其累加和。
  10. tableau free public免费版
  11. 迅雷自动升级解决方法
  12. 为什么要去学习函数式编程
  13. 小米盒子2刷android tv,【二次搬运】小米盒子3S刷Android TV教程
  14. 数据仓库、数据集市、数据湖,你的企业更适合哪种数据管理架构?
  15. fio模拟mysql写入速度_fio 测试工具
  16. FileReader 文件操作
  17. 苹果为开发人员播种macOS Big Sur 11.3的第七个Beta
  18. 程序人生--2003年(20)
  19. 如何在vue项目中引入html页面
  20. ANSYS中各个单元的思考和分析(杆和梁)

热门文章

  1. Python对象内存地址
  2. MacOS Big Sur 11.5.2 (20G95) OC 0.7.2 / Cl 5138 / PE 三分区原版黑苹果镜像
  3. CCS10.2安装步骤
  4. Linux添加keytool环境变量,linux keytool命令
  5. asp.net高校宿舍后勤管理系统
  6. 503 service unavailable php,503service unavailable错误提示解决方法
  7. 《软件评测师教程》学习笔记-第一章:软件测试概述
  8. 记录windows游戏编程——1
  9. 自然语言处理入门——RNN架构解析
  10. 【原创工具 | NetSM】开源跨平台命令行网速监测(纯 Python 开发)