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

算法的特性:(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. 无所不能的Embedding5 - skip-thought的兄弟们[Trim/CNN-LSTM/quick-thought]

    这一章我们来聊聊skip-thought的三兄弟,它们在解决skip-thought遗留问题上做出了不同的尝试[Ref1-4], 以下paper可能没有给出最优的解决方案(对不同的NLP任务其实没有最 ...

  2. 国产开源数据库:腾讯云TBase在分布式HTAP领域的探索与实践

    ​导语 | TBase 是腾讯TEG数据平台团队在开源 PostgreSQL 的基础上研发的企业级分布式 HTAP 数据库系统,可在同一数据库集群中同时为客户提供强一致高并发的分布式在线事务能力以及高 ...

  3. 使用postman发送http请求

    postman使用详解: http://gold.xitu.io/entry/57597a62a341310061337885 https://www.getpostman.com/docs/writ ...

  4. MacOS上Parallels Desktop安装MacOSHighSierra

    下载dmg文件 http://www.macoshome.com/macos/977.html 配置宿主机时间2015-10-27 23:25 为了防止"macOS未能安装在您的电脑上_安装 ...

  5. 【Dotnet9-01】从0开始搭建开源项目-lqclass.com

    行文目录 一. 前言 1.1 我的现有网站 1.2 想法:新开发一个网站 1.3 目前开发计划 二. 行动了 2.1 Github创建项目 2.2 使用 WTM 搭建后台框架 2.3 项目演示 2.4 ...

  6. 第二章、 Centos 6.8安装 Docker

    2.1检查Docker的先决条件 64位 CPU计算机(x86_64),不支持32位 CPU 运行Linux 3.8 或更高版本内核. 内核必须支持一种合适的存储驱动(storage driver), ...

  7. 微信公众测试号中的url和token

    我设置的前提条件: 已购买阿里云服务器,开通了80端口,且网站已备案. 1.在网站文件中新建index.php文件.该文件内容如下: 把 define("TOKEN", " ...

  8. tengine下载和安装

    tengine简介: Tengine所基于开发的Nginx的意思是Engine-X,Tengine在淘宝开发,所以我们把Engine-X中的X替换成Taobao.Tengine即Taobao-Engi ...

  9. Linux修改系统时间为东八区北京时间(上海时间)

    1. Linux时间   Linux的时间分为 System Clock(系统时间)和 Real Time Clock(硬件时间,简称RTC).   系统时间:指系统内核中的时间.   硬件时间:指主 ...

  10. 安卓 Android Studio 下载

    http://www.android-studio.org/    下载地址 https://blog.csdn.net/qq_41976613/article/details/91432304    ...