zoukankan      html  css  js  c++  java
  • 再看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流程图。

  • 相关阅读:
    Selenium 面试题总结
    springbatch 给自定义的processor传递JobParameters中设置的参数
    spring batch 相关的九张表的初始化脚本
    springbatch 读取csv文件时 文件中有字符串需要转换为Date类型的字段报错字符串不能转化为Date类型的解决方法
    spring+quartz定时任务配置---MethodInvokingJobDetailFactoryBean
    springmvc+mybatis+html 下将查询数据以excell形式上传到ftp(下)
    springmvc+mybatis+html 下将查询数据以excell形式上传到ftp(上)
    入门 ARM 汇编(二)—— 寻址方式
    系统进程 zygote(二)—— zygote.rc 脚本
    系统进程 zygote(一)—— 概述
  • 原文地址:https://www.cnblogs.com/deng-c-q/p/4894434.html
Copyright © 2011-2022 走看看