通常一个程序包括算法、数据结构、程序设计方法及语言工具和环境这四个方面。其中算法是核心,算法就是解决“做什么”和“如何做”的问题。算法是程序的灵魂,项目中如果接到一个模块的设计,重要的就是考虑这个模块的算法,怎么去做,如何去做的问题。

算法的特性:(1)有穷性:一个算法必须在执行有穷步后结束,每一步都在有穷的时间内完成,避免出现死循环。

(2)确定性:每一步都应该有确切的定义,对于每一个过程都不能有二义性,将要执行的每一个动作都必须做出严格而清楚的规定。

(3)可行性:算法中的每一步都应该能有效的执行。

(4)输入:一个算法应该有零个或者多个输入。

(5)输出:一个算法应该有一个或者多个输出。

算法的优劣性(衡量算法的好坏):(1)正确性;(2)可读性:在写一个算法的时候,要尽量将该算法写的简明易懂;(3)健壮性:指当输入的数据非法时,算法也会做出相应的判断,而不能应为输入的非法而造成系统的瘫痪;(4)时间复杂度和空间复杂度。

算法包含算法设计和算法分析两个方面的内容:算法设计主要研究怎么样针对特定性的问题设计出求解步骤,算法分析主要是要讨论所设计出来得步骤的正确性和复杂性。

对于一些求解步骤,需要一种表达式,既算法描述。人们可以通过这些算法的描述来了解算法设计者的思路,表示一个算法,可以有不同的方法,常用的有自然语言,流程图,n-s流程图等。

<1>自然语言:

例如:求n!     算法自然语言描述如下:

(1)定义三个变量,a、n、c;并为a何c赋初值为1;

(2)在键盘中输入一个数赋值给n;

(3)将a*c的结果赋值给c

(4)a的值加1,判断a的值是否大于n,如果大于n则执行步骤(5),否则执行步骤(3);

(5)将c的值输出。

<2>流程图:流程图是一种传统的算法表示法,它用一些图框来表示各种性质不同的操作,用流程线来表示算法执行方向,它直观形象,易于理解,早期都是用这种方法表示。

<3>N-S流程图。

再看C语言-算法的更多相关文章

  1. 再看c语言之getchar/putchar

  2. KMP算法再解 (看毛片算法真是人如其名,哦不,法如其名。)

    KMP算法主要解决字符串匹配问题,其中失配数组next很关键: 看毛片算法真是人如其名,哦不,法如其名. 看了这篇博客,转载过来看一波: 原博客地址:https://blog.csdn.net/sta ...

  3. 再看Ajax

    再回顾Ajax相关的内容,再次梳理学习还是很有必要的,尤其是实际的开发中,ajax更是必不可少,仔细学习以便避免不必要的错误. 文章导读: --1.使用XMLHttpRequest---------- ...

  4. python基础----再看property、描述符(__get__,__set__,__delete__)

    一.再看property                                                                          一个静态属性property ...

  5. perf使用的问题,再看perf record,perf record 设置的采样频率,采样频率是如何体现在

    当perf stat -e branches 是统计 再看perf record,perf record是为了是记录时间发生的时候的调用栈, 在我的测试代码中总共有200,000,000条branch ...

  6. 再看Scrapy(1) 基本概念

    再看Scrapy(1) 基本概念 1 准备 安装scrapy: 国内镜像源(官方的pypi不稳定)安装 pip3 install -i https://pypi.douban.com/simple/ ...

  7. SDUT OJ 数据结构实验之串一:KMP简单应用 && 浅谈对看毛片算法的理解

    数据结构实验之串一:KMP简单应用 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Discuss Problem Descr ...

  8. 再谈 Go 语言在前端的应用前景

    12 月 23 日,七牛云 CEO & ECUG 社区发起人许式伟先生在 ECUG Con 2018 现场为大家带来了主题为<再谈 Go 语言在前端的应用前景>的内容分享. 本文是 ...

  9. 快速字符串匹配一: 看毛片算法(KMP)

    前言 由于需要做一个快速匹配敏感关键词的服务,为了提供一个高效,准确,低能耗的关键词匹配服务,我进行了漫长的探索.这里把过程记录成系列博客,供大家参考. 在一开始,接收到快速敏感词匹配时,我就想到了 ...

随机推荐

  1. moviepy音视频开发:音频合成类CompositeAudioClip介绍

    ☞ ░ 前往老猿Python博文目录 ░ CompositeAudioClip是AudioClip的直接子类,用于将几个音频剪辑合成为一个音频剪辑.CompositeAudioClip类只有一个构造方 ...

  2. 老猿学5G随笔:5G核心网中与用户数据相关的NF功能体UDM、AUSF、PCF、UDR

    在业务支撑工作中,与核心网主要的交互包括用户数据管理(含签约关系.策略数据),5G核心网中与用户数据相关的NF功能体包括UDM.AUSF和PCR以及UDR,在此只简单介绍这些NF的功能: UDM:统一 ...

  3. 第15.33节 PyQt(Python+Qt)入门学习:containers容器类部件QTabWidget选项窗部件简介

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 一.概述 容器部件就是可以在部件内放置其他部件的部件,在Qt Designer中可以使用的容器部件有 ...

  4. Model/View开发小结

    老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 Model/View开发是PyQt和Qt中重要的框架之一,老猿认为另外两个就是信号槽机制和事件机制, ...

  5. 第十五章、Model/View架构中Item Views部件的父类

    老猿Python博文目录 老猿Python博客地址 引言:本章早就写好了,其简版<第15.18节 PyQt(Python+Qt)入门学习:Model/View架构中视图Item Views父类详 ...

  6. 西湖论剑2020MISC-Yusa_yyds

    非常规USB流量分析 附件下载: 链接:https://pan.baidu.com/s/1Gjgj1EH9qmX0PYi21uYlDg 提取码:x9xn 先提取USB流量数据,使用工具: https: ...

  7. BUUOJ WEB(1)

    [ACTF2020 新生赛]Include 开启环境之后点击tips 可以在url中看到格式为: ?file=flag.php 加上题目是include,可以猜测是文件包含漏洞 http://a291 ...

  8. tcp socket学习

    更新一波学的socket编程,socket还是比较重要的,探测端口,连接服务底层都是socket编程.tcp有server 和 client.client和udp发送差不多. server端是建立了两 ...

  9. apache、nginx、Tomcat、IIS引擎解析漏洞

                                            引擎解析漏洞 常见的web容器有IIS.Apache.Nginx.Tomcat等,以下是详细讲解 IIS IIS简介 是 ...

  10. OI知识点/得分技巧的归纳总结

    网络流 拆点/拆边技巧 题目来源 bzoj1070 题目描述 同一时刻有\(N\)位车主带着他们的爱车来到了汽车维修中心.维修中心共有\(M\)位技术人员,不同的技术人员对不同 的车进行维修所用的时间 ...