算法 (一) 概念

前言

Algorithms +  Data Structures = Programs  //N.Wirth 1976

虽然大一大二学了数据结构和很多算法,但是一到用的时候就经常想不起来...,而且明年就要考研了,为了能让自己更系统的掌握,决定要全面的学习一下,为以后打好基础!!!

一、概念

计算 = 信息处理 

借助某种工具,遵照一定规则,以明确而机械的形式进行

计算模型 = 计算机 = 信息处理工具

算法:即特定计算模型下,旨在解决特定问题的指令序列

二、特征

输入:待处理的信息(问题)

输出:经处理的信息(答案)

正确性:的确可以解决指定的问题

确定性:任一算法都可以描述为一个由基本操作组成的序列

可行性:每一基本操作都可实现,且在常数时间内完成

有穷性:对于任何输入,经有穷次基本操作,都可以得到输出

三、评定(算法的好坏)

正确:符合语法,能够编译、链接,并且能够正确处理各种类型的输入

健壮:能辨别不合法的输入并做适当的处理,而不致非正常退出

可读:结构化 + 准确命名 + 注释 + ......

效率:速度尽可能快;存储空间尽可能少

原文地址:https://www.cnblogs.com/kindleheart/p/9498780.html

时间: 2024-07-31 17:29:48

算法 (一) 概念的相关文章

[数据结构和算法]算法基本概念

算法基本概念: 算法:用来对数据的操作作描述,是对问题求解的步骤的描述.是一系列将输入转为输出的计算步骤 算法复杂度:分为时间复杂度和空间复杂度时间复杂度:算法中所有语句的频度之和用T(n)表示,记为T(n) = O(n) 常见时间复杂度递增次序:常数 O(1) , 对数阶O(log2^n) , 线性阶O(n) , 线形对数阶O(nlog2^n),平方阶O(n^2),立方阶O(n^3),指数阶O(2^n),O(n!),O(n^n)当n值增大,算法时间复杂度即变大,执行效率变低 最坏时间复杂度:最

【C/C++学院】0828-STL入门与简介/STL容器概念/容器迭代器仿函数算法STL概念例子/栈队列双端队列优先队列/数据结构堆的概念/红黑树容器

STL入门与简介 #include<iostream> #include <vector>//容器 #include<array>//数组 #include <algorithm>//算法 using namespace std; //实现一个类模板,专门实现打印的功能 template<class T> //类模板实现了方法 class myvectorprint { public: void operator ()(const T &

算法基本概念

1.算法:是解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或者多个操作. 2.算法的特性:输入,输出,有序性,确定性和可行性. 3.算法设计的要求:正确性,可读性,健壮性(当输入数据不合法时,算法也能做出相关处理,而不是产生异常或莫名奇妙的结果),时间效率高和存储量低. 4.算法效率的度量:事后统计方法,事前分析估算方法 5.函数的渐近增长:给定两个函数f(n)和g(n),如果存在一个整数N,使得所有的n>N时,f(n)都比g(n)大,那么f(n)的增长渐近快于

数据结构和算法基本概念

数据结构:是相互之间存在一种或多种特定关系的数据元素的集合. 数据结构是一门研究非数值计算的程序设计问题中的操作对象,以及他们之间的关系和操作等相关问题的学科. 程序设计的实质是对确定的问题选择一种好的结构,加上设计一种好的算法. 程序设计 = 数据结构 + 算法 数据:是描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合. 数据其实就是符号,必须具备两个前提: 1)可以输入到计算机中 2)能被计算机程序处理 数据元素:是组成数据的,有一点意义的基本单位

算法基础概念

算法(Algorithm):解决特定问题求解步骤的描述,计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作. 算法的特性: 输入输出有穷性(无死循环)确定性(执行路径唯一,相同的输入唯一的输出)可行性(每一步都是可行的)算法设计的要求: 正确性可读性健壮性高效,低耗--------------------- 作者:两块腹肌的yu先生 来源:CSDN 原文:https://blog.csdn.net/qq_28686911/article/details/82825553 版权声明:本文

0132 算法的概念、冒泡排序

算法:观察执行过程,找到规律,转为代码. // 冒泡排序 // var arr = [5, 4, 3, 2, 1]; var arr = [4, 1, 2, 3, 5]; // 外层循环管趟数 [5个元素,冒泡排序4趟,应该是arr.length - 2,结果一样] for (var i = 0; i <= arr.length - 1; i++) { for (var j = 0; j <= arr.length - i - 1; j++) { // 里面的循环管 每一趟的交换次数 // 内

离群点检测算法-基础概念

定义: Hawkins给出的离群点的本质性定义:离群点是数据集中偏离大部分数据的数据,由于偏离其它数据太多,使人怀疑这些数据的偏离并非由随机因素产生,而是产生于完全不同的机制. 大致分类: 一例分析步骤: 常用离群点检测方法优劣分析: 参考: 离群点检测技术在教育教学中的应用: http://kns.cnki.net/kcms/detail/Detail.aspx?dbname=CJFDLAST2018&filename=XJJS201806016&v=&filetitle=%e7

数据结构与算法 1 :基本概念,线性表顺序结构,线性表链式结构,单向循环链表

[本文谢绝转载] <大纲> 数据结构: 起源: 基本概念 数据结构指数据对象中数据元素之间的关系  逻辑结构 物理结构 数据的运算 算法概念: 概念 算法和数据结构区别 算法特性 算法效率的度量 大O表示法 时间复杂度案例 空间复杂度 时间换空间案例 1)线性表: 线性表初步认识: 线性表顺序结构案例 线性表顺序结构案例,单文件版 线性表的优缺点 企业级线性表链式存储案例:C语言实现 企业级线性表链式存储案例:C语言实现 单文件版 企业级线性表链式存储案例,我的练习  线性表链式存储优点缺点

数据挖掘十大经典算法

一. C4.5  C4.5算法是机器学习算法中的一种分类决策树算法,其核心算法是ID3 算法.   C4.5算法继承了ID3算法的优点,并在以下几方面对ID3算法进行了改进: 1) 用信息增益率来选择属性,克服了用信息增益选择属性时偏向选择取值多的属性的不足: 2) 在树构造过程中进行剪枝: 3) 能够完成对连续属性的离散化处理: 4) 能够对不完整数据进行处理. C4.5算法有如下优点:产生的分类规则易于理解,准确率较高.其缺点是:在构造树的过程中,需要对数据集进行多次的顺序扫描和排序,因而导