栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言学习笔记-Visual Studio 2022 For C

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言学习笔记-Visual Studio 2022 For C

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

C语言的算法基本概念
  • 一、算法的基本概念
    • 1.1算法简介
    • 1.2算法的特征
      • 1.2.1算法的优劣
  • 二、算法描述
    • 2.1自然语言
    • 2.2流程图
      • 2.2.1流程图符号


一、算法的基本概念 1.1算法简介

算法与程序设计及数据结构密切相关,是解决一个问题的完整步骤描述,更是解决这个问题的策略、规则和方法。算法的米哦啊书形式有很多种类,如传统的流程图、结构化流程图及计算机程序语言等。

1.2算法的特征

算法是为解决某一特定类型的问题而制定的一个实现过程,它具有下列特征:

  1. [有穷性]一个算法必须在执行有穷步后结束,且每一步都可在有穷时间内完成,不能无限的执行下去,如果要编写一个由小到大的整数累加的程序,就需要给出整数的上限,也就是加到哪个数为止。若没有上限,那么程序将无终止的运行下去
  2. [确定性]算法的每一个步骤都应当有确切定义,每一个过程都不能有二义性,必须对将要执行的每个动作做出严格而清楚的规定。
  3. [可行性]算法中的每一步都应当能有效运行,也就是说算法是可执行的,并能够最终得到正确的结果。如下程序
int x,y,z;
scanf("%d,%d,%d",&x,&y,&z);
if(==0)
	z=x/y;
  1. [输入]一个算法应有零个或多个输入。输入就是执行算法时需要从外界取得的一些必要的(如算法所需要的初始变量等)信息。例如
int a,b,c;
scanf("%d,%d,%d",&a,&b,&c);

上面的代码有3个输入,又如:

main()
{
	printf("Hello Word!");
}

上面的代码需要0个输入。

  1. [输出]一个算法应有一个或多个输出。输出就是算法最终所求得的结果。编写程序的目的就是要得到一个结果,如果一个程序运行下来没有任何结果,那么这个程序的本身也就失去了意义。需要注意的是:一个程序,可能存在输入,也可能不存在输入,但一定存在输出。
1.2.1算法的优劣

1. 正确性
正确性是指所写的算法应满足具体问题的要求,即对任何合法的输入,算法都会得出正确的结果。
2. 可读性
可读性是指算法被写好后,该算法被理解的难以程度。一个算法可读性的好坏十分重要,如果一个算法比较抽象,难以理解,那么这个算法就不易于进行交流和推广使用,其后续修改、拓展、维护都十分不方便。因此在写一个算法的时候,要尽量对该算法写的简明、易懂。
3. 健壮性
一个程序完成后,运行该程序的用户对程序的理解各有不同,并不能保证每一个都能按照要求进行输入。健壮性就是指当输入的数据非法时,算法也会做出相应的判断,而不会因为输入的错误造成瘫痪。
4. 时间复杂度与空间复杂度
简单的来说,时间的复杂度就是算法运行所需要的时间。不同的算法具有不同的时间复杂度,当一个程序较小的时候,会感觉不到时间复杂度的重要性;当一个程序特别大时,时间复杂度实际上是十分重要的。因此,如何写出更高速的算法一直是算法优化的目标。空间复杂度是指算法运行时所需的存储空间的大小。随着计算机硬件的发展,空间复杂度已经不再显得那么重要。
ps:这里举个小例子:在游戏GTAV中线上模式中开头的加载界面可谓是让我寸阴若岁

常常需要等待数十分钟,还时常掉线,那么在这期间R对你的电脑做了些什么呢?
根据国外大神(TCST)使用逆编译器逐条点击后发现,原来是R的写的代码过于低效,加载时,一个if语句循环了19.8亿次。

以上的例子体现了算法的重要性,以及算法对大型项目的时间复杂度与空间复杂度的不可或缺性。

二、算法描述 2.1自然语言

自然语言就是人们日常所使用的语言,这种表述方式通俗易懂,下面通过实例具体介绍。
[例]求N!。
算法描述如下:
(1)定义3个变量i、n、及null,为i和null为1.
(2)从键盘中输入一个数,赋值给n。
(3)将null乘i的结果赋值给 null。
(4)将i的值加1,判断i的值是否大于n,如果大于n,则执行步骤5,否则执行步骤(3)
(5)将null的结果输出。

2.2流程图

流程图是一种传统的算法表示法,它用一些图框来代表各种不同的性质的操作,用流程线来指示算法的执行方向。由于它直观形象,易于理解,所以应用广泛。特别是在语言发展的早期阶段,只有通过流程图才能简明地表示算法。

2.2.1流程图符号

流程图使用一些图框来表示各种操作。如下

这些框线组成了流程图
网上关于流程图的教程较多,这里不多复述。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1034164.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号