C语言二级选择题考点汇总-数据结构与算法-【考点一】 什么是算法
1.算法及其基本特征
算法是指对方案的准确描述,是解决问题的执行步骤。
算法不等于数学上的计算方法,也不等于程序。程序是算法的载体。
算法的基本特征如下:
(1)可行性:步骤可实现,执行结果可达到预期目的。
(2)确定性:步骤明确,不模棱两可,无多义性。
(3)有穷性:有限的时间(内存)内完成。
(4)拥有足够的输入:算法需要拥有足够的输入信息(初始化信息),当输入数据不足时,算法可能失效。
2.算法复杂度
算法复杂度用来衡量算法的优劣,包括算法的时间复杂度和空间复杂度。
(1)算法的时间复杂度
算法的时间复杂度是指执行算法所需要的计算工作量。
算法的时间复杂度不等于算法程序执行所需要的具体时间。算法程序执行的具体时间受所使用的计算机、程序设计语言以及算法实现过程中的许多细节的影响。而算法的时间复杂度与这些因素无关。
算法的计算工作量是用算法所执行的基本运算次数来度量的。算法所执行的运算次数与问题的规模有关。
在具体分析一个算法的工作量时,在同一个问题规模下,算法所执行的基本运算次数还可能与特定的输入有关。即输入不同时,算法所执行的基本运算次数不同。
(2)算法的空间复杂度
算法的空间复杂度是指执行这个算法所需要的内存空间。
算法执行期间所需的存储空间包括3个部分:
输入数据所占的空间
程序本体所占的空间
算法执行过程中所需要的额外空间。(包括算法程序执行过程中的工作单元,以及某种数据结构所需要的附加存储空间)
如果额外空间量相对于问题规模(即输入数据所占的存储规模)来说是常数,即额外空间量不随问题规模的变化而变化,则称该算法是原地(in place)工作的。
为了降低算法的空间复杂度,主要应减少输入数据所占的存储空间以及额外空间,通常采用压缩存储技术。
C语言二级选择题考点汇总-数据结构与算法-【考点一】 什么是算法的更多相关文章
- 转 C语言面试题大汇总
转 C语言面试题大汇总,个人觉得还是比较全地!!! \主 题: C语言面试题大汇总,个人觉得还是比较全地!!! 作 者: free131 (白日?做梦!) 信 誉 值: 100 ...
- android多国语言文件夹文件汇总
android多国语言文件夹文件汇总如下: 中文(中国):values-zh-rCN 中文(台湾):values-zh-rTW 中文(香港):values-zh-rHK 英语(美国):values-e ...
- C语言学习书籍推荐《数据结构与算法分析:C语言描述(原书第2版)》下载
维斯 (作者), 冯舜玺 (译者) <数据结构与算法分析:C语言描述(原书第2版)>内容简介:书中详细介绍了当前流行的论题和新的变化,讨论了算法设计技巧,并在研究算法的性能.效率以及对运行 ...
- R语言中的几种数据结构
R语言中的几种数据结构 一 R中对象的5种基本类型 字符(character) 整数 (integer) 复数(complex) 逻辑(logical:True/False) 数值(numeric: ...
- 数据结构和算法(Golang实现)(25)排序算法-快速排序
快速排序 快速排序是一种分治策略的排序算法,是由英国计算机科学家Tony Hoare发明的, 该算法被发布在1961年的Communications of the ACM 国际计算机学会月刊. 注:A ...
- 数据结构和算法(Golang实现)(26)查找算法-哈希表
哈希表:散列查找 一.线性查找 我们要通过一个键key来查找相应的值value.有一种最简单的方式,就是将键值对存放在链表里,然后遍历链表来查找是否存在key,存在则更新键对应的值,不存在则将键值对链 ...
- 数据结构和算法(Golang实现)(29)查找算法-2-3树和左倾红黑树
某些教程不区分普通红黑树和左倾红黑树的区别,直接将左倾红黑树拿来教学,并且称其为红黑树,因为左倾红黑树与普通的红黑树相比,实现起来较为简单,容易教学.在这里,我们区分开左倾红黑树和普通红黑树. 红黑树 ...
- 洞悉Redis技术内幕:缓存,数据结构,并发,集群与算法
"为什么这个功能用不了?" 程序员:"清一下缓存" 上篇洞悉系列文章给大家详细介绍了MySQL的存储内幕:洞悉MySQL底层架构:游走在缓冲与磁盘之间.既然聊过 ...
- 数据结构看书笔记(二)--算法(Algorithm)简介
算法:是解决问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作. 算法的特性:算法具有五个特性:输入.输出.有穷性.确定性.可行性 输入输出:算法具有零个或多个输入:至 ...
随机推荐
- js笔记(3)--js实现数组转置(两种方法)
js实现数组转置 第一种方法: <script> window.onload=function(){ var array1=[[11,22,33,333],[4 ...
- 计蒜客A1998 Ka Chang (分块+dfs序+树状数组)
题意 给你一个\(1e5\)的有点权的树,有\(1e5\)个操作: 1.给第\(x\)层的点加上\(y\) 2.求以\(x\)为根的子树的点权和 思路 首先处理出层数为x的所有点 操作2一般都是用df ...
- Codeforces 1087C Connect Three (思维+模拟)
题意: 网格图选中三个格,让你选中一些格子把这三个格子连起来,使得选中的格子总数最小.最后输出方案 网格范围为1000 思路: 首先两点间连起来最少需要的格子为他们的曼哈顿距离 然后连接方案一定是曼哈 ...
- 《Python学习手册 第五版》 -第12章 if测试和语法规则
本章节的内容,主要讲解if语句,if语句是三大复合语句之一(其他两个是while和for),能处理编程中大多数逻辑运算 本章的重点内容如下: 1.if语句的基本形式(多路分支) 2.布尔表达式 3.i ...
- java4选择结构 二
public class jh_01_为什么使用switch选择结构 { /* * 韩嫣参加计算机编程大赛 * 如果获得第一名,将参加麻省理工大学组织的1个月夏令营 * 如果获得第二名,将奖励惠普笔记 ...
- 真正解决百度编辑器UEditor上传图片跨域问题
做前后端分离的项目用到UEditor,把上传图片程序拿出来放到了接口程序中,上传图片接口已经做了跨域处理,按理说编辑器中上传图片应该不会有问题.可是配置好图片上传路径后,运行,打开调试,测试一下,报错 ...
- java 子线程定时去更改主线程的变量
在一次代码编写场景,需要post一些数据,同时携带获得的token,(但是token的有效时间是7200s),但是post需要很多次,很长时间,不可能2小时候中断程序,手动去获取token,这样效率太 ...
- PYTHON 学习笔记4 模块的使用、基本IO 写入读取、JSON序列化
前言 若在之前写代码的方式中,从Python 解释器进入.退出后再次进入,其定义的变量.函数等都会丢失.为了解决这个为,我们需要将需要的函数.以及定义的变量等都写入一个文件当中.这个文件就叫做脚本 随 ...
- Unity 编辑器开发SceneView GUI控制
前几天项目需要就做了个类似于Collider EditCollider的功能 下面是我做的效果 基础代码如下: public class ExportCFGInputWindow : EditorWi ...
- Matplotlib绘制漫威英雄战力图,带你飞起来!
目录 前言 期望功能 代码实现 一.导入matplotlib依赖包 二.支持显示中文 三.使用ggplot主题 四.根据能力项等分圆 五.生成n个子图 六.获取支持的颜色 六.绘制所有子图 更多示例 ...