当前位置: 首页 > news >正文

程序算法基础

程序设计基本概念

程序和算法

人们做任何事情都有一定的方法和程序,如:春节联欢晚会的节目单、开会的议程等,都是程序。在程序的指导下,可以有秩序地、有效的完成每一项工作。随着计算机的问世和普及,“程序”逐渐专业化,通常指:为了让计算机完成特定任务而设计的指令序列(如:解决某一问题或控制某一过程)。

从程序设计角度来说,每个问题都涉及两个方面的内容——数据和操作。“数据”泛指计算机要处理的对象,包括数据的类型、数据的组织形式和数据之间的相互关系,又称为数据结构(Date Structure);“操作”是指处理的方法和步骤,称为算法(Algorithm)。编写程序所用的计算机语言称为“程序设计语言”。

一个程序中包括:

对数据的描述,即数据结构。在程序中要指定数据的类型和数据的组织形式。

对数据处理的描述,即算法。算法是为了解决一个问题而采取的方法和步骤。

算法反映了计算机的执行过程,是对解决特定问题的操作步骤的一种描述。数据结构是对参与运算的数据及他们之间关系所进行的描述,算法和数据结构是程序的两个重要方面。

著名计算机科学家沃思(Niklaus Wirth)提出一个经典公式:

算法+数据结构=程序

实际上一个程序除了以上两个要素之外,还应当采用程序设计方法进行程序设计,并且用某一种程序设计语言表示,故上述公式可表示为:

算法+数据结构+程序设计方法+语言工具和环境=程序

数据结构

计算机处理的对象是数据,数据是描述客观事物的数、字符以及计算机能够接收和处理的信息符号的总称。数据结构是指数据的类型和数据的组织形式。数据类型体现了数据的取值范围和合法的运算,数据的组织形式体现了相关数据之间的关系。

数据结构和算法有着密切的关系,只有明确了问题的算法,才能更好的构造数据结构;选好的算法,常常依赖于好的数据结构。程序就是在数据的某些特定的表示方式和结构的基础上对抽象算法的具体描述。编写一个程序的关键是合理地组织数据和设计好的算法。

注:有不当之处,请批评指正!谢谢~

相关文章:

  • 思源配置阿里云 OSS 踩坑记
  • 寻找左边第一个更小值
  • RAG(Retrieval-Augmented Generation)基建之PDF解析的“魔法”与“陷阱”
  • 感知识别算法Jetson环境部署测试记录
  • 【AVRCP】深度剖析 AVRCP 中 Generic Access Profile 的要求与应用
  • RHCE 使用nginx搭建网站
  • Linux进程信号(下:补充)
  • 分布式任务调度框架XXl-job
  • 蓝桥杯备考:二分答案之路标设置
  • 大模型-提示词工程与架构
  • RK3588开发笔记-RTL8852wifi6模块驱动编译报错解决
  • Linux操作系统7- 线程同步与互斥4(基于POSIX条件变量的生产者消费者模型)
  • moveit2基础教程上手-使用xarm6演示
  • 【工具变量】中国各地级市是否属于“信息惠民国家试点城市”匹配数据(2010-2024年)
  • 『 C++ 』错误使用std::mutex引发的error C2039: “try_lock_until“: 不是 “std::mutex“ 的成员
  • vue3:十一、主页面布局(左侧菜单折叠展开设置)
  • vulnhub靶场之【hack-me-please靶机】
  • 微前端框架深度对比与技术实现剖析
  • Cursor的五种高级用法
  • 数智读书笔记系列022《算力网络-云网融合2.0时代的网络架构与关键技术》读书笔记
  • 荆州市委书记汪元程:全市各级干部要做到慎微、慎初、慎独、慎友
  • 广东省副省长刘红兵跨省任湖南省委常委、宣传部部长
  • 新开发银行如何开启第二个“金色十年”?
  • 中行一季度净赚超543亿降2.9%,利息净收入降逾4%
  • 成都世运会倒计时100天,中国代表团运动员规模将创新高
  • 澎湃回声|山东莱州、潍坊对“三无”拖拉机产销市场展开调查排查