首页 > 编程语言 >计算机算法设计与分析第一章总结

计算机算法设计与分析第一章总结

时间:2022-09-04 23:36:24浏览次数:64  
标签:计算机 复杂性 NPC 第一章 问题 N0 算法 NP

1.1算法与程序

  算法的性质:输入、输出、确定性、有限性。

  程序是算法用某种程序设计语言的具体实现,可以不满足算法的有限性。

1.2算法复杂性分析

  算法复杂性是算法运行所需要的计算机资源的量,需要时间资源的量称为时间复杂性,需要空间资源的量称为空间复杂性。

  一般只讨论时间复杂性。

  实践表明,可操作性性最好的是最坏情况下的时间复杂性。

  分析时间复杂性时可以将复杂性函数简化为渐进复杂性,比较两个算法的渐进复杂性的阶即可确定哪个算法的效率高。

  上界(O):如果存在正的常数C和自然数N0 ,使得当N >= N0时有f(N) <= Cg(N),则称函数f(N)当N充分大时上有界,且g(n)是它的一个上界,记为f(N) = Og(N)。这时还说f(N)的阶不高于g(N)的阶。

  下界(Ω):如果存在正的常数C和自然数N0 ,使得当N >= N0时有f(N) >= Cg(N),则称函数f(N)当N充分大时下有界,且g(n)是它的一个下界,记为f(N) = Ωg(N)。这时还说f(N)的阶不低于g(N)的阶。

  定义f(N) = θ(g,(N))当且仅当f(N) = O(g(N))且f(N) = Ω(g(N))是,称为f(N)与g(N)同阶。

  如果对于任意给定的ε>0,都存在正整数N0,使得当N >= N0时有f(N) / g(N) < ε,则称函数f(N)当N充分大时的阶比g(N)低,记为f(N) = o(g(N))。

1.3NP完全性理论

  1.P类问题:存在多项式时间算法的问题。

  2.NP问题:能在多项式时间内验证得出一个正确解的问题。

  3.NPC类问题:存在这样一个NP问题,所有的NP问题都可以约化成它。

  4.NP-Hard问题:NP-Hard问题是这样一种问题,它满足NPC问题定义的第二条但不一定要满足第一条(就是说,NP-Hard问题要比 NPC问题的范围广,NP-Hard问题没有限定属于NP),即所有的NP问题都能约化到它,但是它不一定是一个NP问题。

  P⊆NP 并且 NPC = NP ∩ NP-hard

标签:计算机,复杂性,NPC,第一章,问题,N0,算法,NP
From: https://www.cnblogs.com/noobkier/p/16656510.html

相关文章

  • 《计算机网络-自顶向下方法》学习笔记
    TCP和UDPTCP服务TCP服务模型包括面向连接和可靠数据传输服务。当某个应用程序调用TCP作为其运输服务协议时,该应用程序就能获得来自TCP的这两种服务。面向连接的服......
  • 数据结构与算法学习笔记 —— 队列(Queue)
     队列Queue1.简介队列是一种有次序的数据集合,其特征是数据项的添加和移除分别发生在该集合的两端:-数据项的添加发生在尾端(rear)-现存数据的移除发生在首......
  • 《计算机科学概论》问题
    第一章:1.二进制与其他进制之间如何转换?2.硬件输入设备从孔发展到多终端,除了效率的提升之外,还有何变化?第二章:1.二进制能否与四进制快速转化?为什么?2.32位与64位的设备在......
  • letcode算法--10.三数之和
    给你一个整数数组nums,判断是否存在三元组[nums[i],nums[j],nums[k]]满足i!=j、i!=k且j!=k,同时还满足nums[i]+nums[j]+nums[k]==0。请你返回所有......
  • 学年(2022-2023-1) 学号(20221317)《计算机基础与程序设计》第1周学习总结
    作业信息班级:https://edu.cnblogs.com/campus/besti/2022-2023-1-CFAP作业链接:https://www.cnblogs.com/zhanquanchen/p/16654783.html作业要求:快速浏览教材(https://www......
  • 十大排序算法之【插入排序】
    插入排序的原理很简单:斗地主理牌的时候怎么操作就怎么操作。最简易版代码实现:#include<bits/stdc++.h>voidinsert_sort(vector<int>&in){for(inti=0;i<in.s......
  • 算法--链表
       方法一:构造链表如果此类型的题出现在笔试中,如果内存要求不高,可以采用如下方法:可以先用一个vector将单链表的指针都存起来,然后再构造链表。此方法简单易懂,代码好......
  • 2022-2023-1 20221408《计算机基础与程序设计》第一周学习总结
    班级:https://edu.cnblogs.com/campus/besti/2022-2023-1-CFAP作业链接:https://www.cnblogs.com/zhanquanchen/p/16654783.html作业目标:快速浏览教材作业正文:https://www.cn......
  • 算法提高课 第四章 数据结构之树状数组
    一、介绍功能快速求前缀和O(logn)修改某一个数O(logn)原理c[x]:以x结尾的长度lowbit(x)的所有数的和父节点找所有子节点(求和操作):c[x]=a[x]+c[x-1]+.........
  • 第一次读《计算机科学概论》有感
    第一章的问题:1.计算机系统各层是有怎样的有机联系用晶体管代替真空管有什么技术上的优势第二章的问题:1.为什么计算机放弃了十进制、十六进制而选择了二进制2.二进制与......