再看c语言-算法

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

算法的特性:(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流程图。

时间: 2024-08-11 07:41:36

再看c语言-算法的相关文章

回头再看C语言-iOS之而今迈步从头越(一)

关于目前比较流行的编程语言的一个情况来看,到2014年8月之前,大体上的结果是: *数据来自网络 名列三甲的分别是:C,Java,Objective-C,从这个表里面可以看出,C语言在编程界还是被普遍的认为非常重要的,并且作为很多大学计算机系的必修基础科目之一,可见C语言还是非常有群众基础的. 话再说回到iOS开发上来,因为苹果系统基本都是使用Objective-C(后面简称为OC)来做第一语言来使用的,但在一些深处的机制(比如运行时runtime)以及图像处理以及通讯录访问方面,还是会经常使用

再看最短路算法 1 —— 单源最短路

学了多年的算法,最短路问题相当之常见———— 好久没写过最短路的问题了,直到昨天闲的无聊来了一题——BZOJ3402(HansBug:额才发现我弱到只能刷水的地步了TT) 一看这不是明显的单源最短路么呵呵...于是直接上来来了个dijkstra,而且用的是邻接表存储图—— Submit之后,结果却是—— 我立刻被雷到了QAQ...于是立刻改写spfa,结果—— 4000ms+(估计还不止)和192ms究竟是怎样的差距啊QAQ,本人虽然早都听说过spfa的强大性,但是未曾想过差距会如此可怕,于是H

【算法】2 由股票收益问题再看分治算法和递归式

回顾分治算法 分治算法的英文名叫做"divide and conquer",它的意思是将一块领土分解为若干块小部分,然后一块块的占领征服,让它们彼此异化.这就是英国人的军事策略,但我们今天要看的是算法. 如前所述,分治算法有3步,在上一篇中已有介绍,它们对应的英文名分别是:divide.conquer.combine. 接下来我们通过多个小算法来深化对分治算法的理解. 二分查找算法 问题描述:在已排序的数组A中查找是否存在数字n. 1)分:取得数组A中的中间数,并将其与n比较 2)治:

再看“笕实智慧校园”——作品的复盘[1]

这几个月因为学业繁重,加上准备省机器人竞赛的原因,没能经常写博客. 在学军的这几个礼拜,觉得自己还是学到了不少的. 如今,再看当年的笕实智慧校园工程(http://www.cnblogs.com/pityhero233/p/7246862.html),只觉得多了不少可以改进的地方. 一个基于python和pcduino的智慧校园系统,本着开(zhuang)源(bi)的精神可以用来借鉴.233. 运行在pcduino上的,需要搭配一些元件. 现在,接触到了各种板子.除了pcduino和现在已经被满

易语言算法原理浅析【一】

注: 如果你看完了下面的文章.就来试试这个KeyGenMe吧,相信你能有所收获. http://www.52pojie.cn/thread-540179-1-1.html 一.文章开头首先我们要贴上一段易语言代码,并且编译这段代码,从汇编角度分析易语言程序编译后,易语言算法在汇编中的实现过程. .版本 2 .程序集 窗口程序集_启动窗口 .子程序 _按钮1_被单击 .局部变量 变量1, 整数型 .局部变量 变量2, 整数型 .局部变量 变量3, 整数型 变量2 = 1 变量3 = 2 变量1 =

再看Ajax

再回顾Ajax相关的内容,再次梳理学习还是很有必要的,尤其是实际的开发中,ajax更是必不可少,仔细学习以便避免不必要的错误. 文章导读: --1.使用XMLHttpRequest---------- 1.1 必备知识点 1.2 send()方法 1.3  再看CORS --2.HTTP请求和响应---------------- 2.1 Request Header中的参数 2.2 Response Header中的参数 2.3 GET请求和POST请求的区别 --3.jQuery中的Ajax-

要继续看Python写算法的内容请到那里去

因为在这里发文章的时候,莫名其妙的出现发布出去的问题,客服告知是因为链接或者敏感词. 能不能告诉我哪里出了问题?我可以修改,以便再发. 但是,没有人告诉我,只是告诉我不能发. 另外,能不能公布一下敏感词?以后我在遣词造句的时候,才可以避免. 但是,没有看到敏感词列表. 以后我的文章将发布在https://www.github.com/qiwsir/algorithm里面,有兴趣的可以到那里阅读. 要继续看Python写算法的内容请到那里去,布布扣,bubuko.com

闲话js前端框架(5)——再看自己一年前设计的微型渲染引擎

闲话js前端框架 前端人员=美工+设计+代码+测试 --题记 专题文章: 一.从avalonjs的模板说起 二.庞大的angularjs 三.再也不想碰DOM 四.组件化?有没有后端的事? 五.再看自己一年前设计的微型渲染引擎 六.在浏览器标准上做文章 七.抛开浏览器,构建应用容器 八.为何Flash.银光和Java都在网页端一蹶不振 本文属 西风逍遥游 原创, 转载请注明出处: 西风世界 http://blog.csdn.net/xfxyy_sxfancy 五.再看自己一年前设计的微型渲染引擎

【Go语言】【13】再谈GO语言的结构体

本文从如下四个方面再领着大家认识结构体 匿名结构体和匿名成员的结构体 值传递和引用传递 再谈嵌套结构体 面向对象 1.匿名结构体和匿名成员的结构体 如上篇所述,一个结构体需要先声明,再初始化,最后把初始化后的结构体赋值给其它变量,例如: /*声明结构体*/ type employee struct{ name,address string height,weight float64 } /*初始化结构体,并赋给变量emp*/ emp := employee{name:"eagle",