【算法-程序的灵魂#谭浩强配套】(适合专升本、考研)

无偿分享学习资料,需要的小伙伴评论区或私信dd。。。

无偿分享学习资料,需要的小伙伴评论区或私信dd。。。

无偿分享学习资料,需要的小伙伴评论区或私信dd。。。

完整资料如下:

1.一个程序主要包括以下两方面信息:程序=算法+数据结构

数据结构:对数据的描述。

算法:对操作的描述。

2.什么是算法?

为解决一个一个问题而采取的方法和步骤就是算法

3.计算机算法可分为两大类:数值运算算法、非数值运算算法

4.算法的特性:

有穷性:有限的操作步骤。

确定性:每一个步骤都应该是确定的,无二义性。

零个或多个输入

一个或多个输出

可行性:每一个步骤都是能有效执行的。

5.如何表示一个算法

  • 自然语言

    <!--使用自然自然表示算法通俗易懂,但是文字冗长,容易出现分歧,且含义往往不太严格,需要上下文判断。-->

  • 流程图【传统流程图、结构化流程图、N-S流程图】

    <!--流程图分为3种,传统流程图、结构化流程图和N-S流程图。传统流程图又称为“BS型算法”,是最早的流程图表算法方式,其难以阅读、修改,算法的可靠性与维护行不高,很难看清算法逻辑。为了解决传统流程图的弊端,人们规定了几种基本结构-顺序结构、选择结构、循环结构,就诞生了结构化流程图,结构化流程图表示的算法直观形象、易于理解,但是当算法比较复杂时,画起来比较费时且难以修改,也难以清楚的表达算法。N-S流程图是由结构化流程图演变而来,只是去掉了结构化流程图的流程线。-->

  • 伪代码

    <!--近似于高级语言的文字和符号来描述算法,书写方便自由,无严格语法规则,格式紧凑,修改方便,容易看懂,也便于向计算机语言过渡,但是编写的算法不如流程图直观,可能出现逻辑上的错误。一般begin表示开始,end表示结束,专业算法设计人员常采用伪代码描述算法。-->

  • 程序设计语言

    <!--顾名思义就是使用计算机语言来表示算法,优点当然是可以直接在计算机上运行,缺点就是语法严格。-->

6.一个结构化流程图应该包含以下三方面内容

  • 表示相应操作的框
  • 带箭头的流程线
  • 框内外必要的文字说明

⚠️注意:

  • 连接点:用于将画在不同地方的流程线连接起来

  • 流程线:表示程序运行的方向,切记加箭头

7.三种基本结构:顺序结构、选择结构、循环结构(当型循环结构、直到型循环结构)

三种基本结构的共同点:只有一个入口与出口、结构内每个部分都有机会执行、不存在死循环

⚠️注意:选择结构虽然有两个方向出口,但是最终只会执行一个方向,所以也是一个出口。

8.N-S流程图

2.24:顺序结构

2.25:选择结构

2.26:当型循环结构(分为for、while循环)

2.27:直到型循环结构

9.由三种基本结构组成的算法结构,可以解决任何复杂的问题。

10.如何保证得到结构化程序

自顶而下(自下而上)

逐步细化(逐步积累)

模块化设计

结构化编码

11.什么是结构化程序设计(模块化程序设计)

以模块设计为中心,将程序分成若干个独立的模块,每个独立的模块都使用三种基本结构构成的程序称为结构化程序。它的主要观点是

采用自顶向下、逐步求精的程序设计方法;使用3种根本控制结构构造程序,任何程序都可由顺序、选择、循环这3种根本控制结构构造 。

⚠️注意:结构化程序主要由三种基本结构构成,但并非包含三种基本结构的程序就是结构化程序,也不是必须包含三种基本结构。

12.什么是结构化算法

使用三种基本结构描述的算法就是结构化算法

典型算法

1.冒泡排序

    int a[5],t;printf("请输入五个数字:\n");for(int i=0;i<5;i++){scanf("%d",&a[i]);}printf("输入完成!\n\n");for(int i=0;i<4;i++){                     //外层循环:轮for(int j=0;j<4-i;j++){               //内层循环:次if(a[j]>a[j+1]){                  //例如a0与a1比较,若a0大于a1,则互换位置,这样较大者放在第二位,接着t=a[j],a[j]=a[j+1],a[j+1]=t;  //和第三位比较,若大于第三位又互换位置,以此类推,将较大者移到最后面}}}printf("从小到达循序为:");for(int i=0;i<5;i++){printf("%d\t",a[i]);}

2.斐波那契函数问题

//1.普通解法
#include<stdio.h>
int main()
{int f1=1,f2=1,i;for(i=1;i<=20;i++){printf("%12d %12d",f1,f2);if(i%2==0)printf("\n");f1=f1+f2;f2=f2+f1;}return 0;
}
​
//2.数组解法
#include<stdio.h>
int main()
{int a[20]={1,1};int i;for(i=2;i<20;i++)a[i]=a[i-2]+a[i-1];for(i=0;i<20;i++){if(i%3==0)printf("\n");printf("%12d",a[i]);}return 0;
}

完整学习资料评论区或私信dd。。。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/10714.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JAVA学习-练习试用Java实现分隔链表

问题&#xff1a; 给定一个链表的头节点 head 和一个特定值 x &#xff0c;请对链表进行分隔&#xff0c;使得所有 小于 x 的节点都出现在 大于或等于 x 的节点之前&#xff0c;应当 保留 两个分区中每个节点的初始相对位置。 示例 1&#xff1a; 输入&#xff1a;head [1,…

Pikachu 靶场 RCE 通关解析

前言 Pikachu靶场是一种常见的网络安全训练平台&#xff0c;用于模拟真实世界中的网络攻击和防御场景。它提供了一系列的实验室环境&#xff0c;供安全专业人士、学生和爱好者练习和测试他们的技能。 Pikachu靶场的目的是帮助用户了解和掌握网络攻击的原理和技术&#xff0c;…

DI-engine强化学习入门(七)如何自定义神经网络模型

在强化学习中,需要根据决策问题和策略选择合适的神经网络。DI-engine中,神经网络模型可以通过两种方式指定: 使用配置文件中的cfg.policy.model自动生成默认模型。这种方式下,可以在配置文件中指定神经网络的类型(MLP、CNN等)以及超参数(隐层大小、激活函数等),DI-engine会根据…

Leetcode 107:二叉树的层次遍历II

给你二叉树的根节点 root &#xff0c;返回其节点值 自底向上的层序遍历 。 &#xff08;即按从叶子节点所在层到根节点所在的层&#xff0c;逐层从左向右遍历&#xff09;。 思路&#xff1a;翻转title102的结果即可。 //层次遍历二叉树public static List<List<Integ…

RuvarOA协同办公平台 多处 SQL注入漏洞复现

0x01 产品简介 RuvarOA办公自动化系统是广州市璐华计算机科技有限公司采用组件技术和Web技术相结合,基于Windows平台,构建在大型关系数据库管理系统基础上的,以行政办公为核心,以集成融通业务办公为目标,将网络与无线通讯等信息技术完美结合在一起设计而成的新型办公自动…

安卓LeakCanary研究

一、安卓LeakCanary概述 LeakCanary是Square公司推出的一款开源的内存泄漏检测工具&#xff0c;专为Android平台设计。它通过简洁直观的方式帮助开发者识别和解决应用程序中的内存泄漏问题&#xff0c;从而优化应用性能&#xff0c;减少崩溃风险。LeakCanary的核心优势在于其自…

el-checkbox选中后的值为id,组件显示为label中文

直接上代码 方法一 <el-checkbox v-for"item in list" :key"item.id" :label"item.id">{{中文}} </el-checkbox> 方法二 <el-checkbox-group class"flex_check" v-model"rkStatusList" v-for"item…

react 逻辑 AND 运算符 ()

在 React 组件中&#xff0c;当你想在条件为 true 时渲染一些 JSX 时&#xff0c;它经常会出现&#xff0c;或者什么都不渲染。使用 &#xff0c;只有在以下情况下才能有条件地呈现复选标记&#xff1a;&&isPackedtrue return (<li className"item">{…

续篇——源码部署LAMP环境上线项目——禅道项目

上篇:LNMP环境部署WordPress——使用源码包安装方式部署环境-CSDN博客 目录 一.前提准备 1. 名词区别 2. 下载项目软件包 3. 上传项目源码到虚拟机并解压 二.安装Apache 1. 环境清理 2.关闭Nginx 3. 下载Apache 4. 下载APR组件 4.1 安装apr 4.2 安装apr-util组件 5…

MySQL运维总结

以下是个人工作中用到的mysql运维总结。 基本运维命令 看下死锁的语句&#xff1a;show engine innodb status \G; 修改最大连接数&#xff1a;set global max_connections1400; 使用profile查询sql执行耗时&#xff1a; 1、set profiling 1 ; 启用profile , session级别的配…

Kotlin: ‘return‘ is not allowed here

报错&#xff1a;以下函数的内部函数return语句报错 Kotlin: return is not allowed here fun testReturn(summary: (String) -> String): String {var msg summary("summary收到参数")println("test内部调用参数&#xff1a;>结果是 &#xff1a;${msg…

数据分享—全国分省河流水系

河流水系数据是日常研究中必备的数据之一&#xff0c;本期推文主要分享全国分省份的水系和河流数据&#xff0c;梧桐君会不定期的更新数据&#xff0c;欢迎长期订阅。 数据预览 山东省河流水系 吉林省河流水系 四川省河流水系 数据获取方式 链接&#xff1a;https://pan.baidu.…

C++容器常用集合(附传送门)

C常用的容器&#xff1a; string容器 C容器——string-CSDN博客 储存字符串的 vector容器 C容器——vector-CSDN博客 向量是动态数组&#xff0c;可以自动扩展以容纳更多元素。 插入和删除元素的时间复杂度取决于操作的位置 tuple容器&#xff08;元组&#xff09; C容器…

永久免费的多域名通配符SSL证书申请流程

如果拥有多个域名&#xff0c;且有部分域名拥有子域名&#xff0c;那么多域名通配符证书是非常合适的选择。预算有限或者前期测试可以考虑免费版本的&#xff0c;国产证书厂商JoySSL则提供免费的多域名通配符证书 。 具体流程如下 1创建管理账号 登录JoySSL官网&#xff0c;创…

【启明智显分享】国产自主HMI核心板Model3

Model3是一款高性能的工业级HMI&#xff08;人机界面&#xff09;核心板&#xff0c;也是一款纯国产HMI方案&#xff0c;工业级标准&#xff0c;稳定、可靠&#xff1b; 工业级HMI芯片–Model3 纯国产HMI方案 Model3核心板&#xff0c;具有2D加速&#xff0c;PNG解码&…

AI学习指南概率论篇-概率分布

AI学习指南概率论篇-概率分布 概率分布的概述 概率分布是概率论中的一个重要概念&#xff0c;用于描述随机变量的取值和其对应的概率。概率分布可以帮助我们理解和预测事件发生的可能性&#xff0c;并在AI中扮演着重要角色。在机器学习和深度学习中&#xff0c;概率分布被广泛…

【Python单点知识】深入理解与应用类多态

文章目录 0. 前言1. 多态类的概念2. Python中实现多态类的途径2.1 类的继承2.2 抽象基类2.3 duck typing 3. 多态类的应用场景4. 结论 0. 前言 按照国际惯例&#xff0c;首先声明&#xff1a;本文只是我自己学习的理解&#xff0c;虽然参考了他人的宝贵见解及成果&#xff0c;但…

Day25 代码随想录打卡|栈与队列篇---用队列实现栈

题目&#xff08;leecode T225&#xff09;&#xff1a; 请你仅使用两个队列实现一个后入先出&#xff08;LIFO&#xff09;的栈&#xff0c;并支持普通栈的全部四种操作&#xff08;push、top、pop 和 empty&#xff09;。 实现 MyStack 类&#xff1a; void push(int x) 将…

嵌入式学习day17

FIFO FIFO也称命名管道&#xff0c;它是一种文件类型 特点 FIFO可以在无关的进程之间交换数据&#xff0c;与无名管道不同FIFO有路径名与之相关联&#xff0c;它以一种特殊设备文件形式存在于文件系统中。FIFO的通信方式类似于在进程中使用文件来传输数据&#xff0c;只不过…

Linux之·网络编程·I/O复用·select

系列文章目录 文章目录 前言一、概述1.1 介绍IO复用的概念和作用1.1.1 I/O复用具体使用的场景1.1.2 I/O复用常用函数 二、select函数的重要性和用途2.1 基本的select函数2.2 如何使用FD_SET、FD_CLR等宏来设置和清除文件描述符集合2.3 select()函数函数整体使用框架&#xff1a…