算法的描述:

自然语言:英语,中文

流程图:传统流程图,NS流程图

伪代码:类语言:类C语言

程序代码:C语言程序,JAVA语言程序,python语言程序......

算法的定义:

算法就是对特定问题求解方法和步骤的一种描述,它是指令的有限序列,其中每个指令表示一个或多个操作(简言之,算法就是解决问题的方法和步骤)。

对于算法而言,实现的语言并不重要,重要的是思想,而算法可以用不同的语言去描述,如C++,python,java,C语言等(如果掌握其中一门语言也是可以的,不需要刻意的为了学习数据结构而去学习C语言,其中有很多相通的,最终的目的是学会思想)

算法特征:

1,有穷性;一个算法必须总在执行的有穷步之后结束,每一步都可在有穷时间内完成,不会无限循环。

2,确定性;算法中每条指令必须有确定的含义。

3,可行性;算法中的每一步都是可行的,每一步都可以执行有限的次数完成。

4,输入;一个算法有0个或多个输入。

5,输出;一个算法有1个或多个输出。

还有一些设计要求,比如可读性:目的让人们能够看懂,正确性:程序中不含语法错误对输入的数据能够得出满足要求的结果,健壮性:若输入错误时可以对其做出反应并进行处理,高效性:要球花费尽量少的时间和尽量低的存储需求。

程序:用某种程序设计语言对算法的具体实现

    程序=数据结构+算法

1,数据结构通过对算法实现操作

2,算法根据数据结构设计程序

数据结构中的算法,算法的定义与特征相关推荐

  1. 数据结构中各种排序算法比较

    数据结构中各种排序算法比较 1 快速排序(QuickSort)    快速排序是一个就地排序,分而治之,大规模递归的算法.从本质上来说,它是归并排序的就地版本.快速排序可以由下面四步组成. (1) 如 ...

  2. 数据结构中基本查找算法总结

    原文地址:https://www.cnblogs.com/xuzhp/p/4638937.html 基本查找算法    一.查找的基本概念 查找,也可称检索,是在大量的数据元素中找到某个特定的数据元素 ...

  3. 数据结构中各种排序算法的稳定性比较

    1.简单选择排序 2.堆排序        (1和2是属于选择排序) 3.直接插入排序 4.希尔排序     (3和4属于插入排序,有时把改进后的直接插入排序叫做二分插入) 5.冒泡排序        ...

  4. 考研数据结构中的经典算法(总归纳)

    一.线性表 1.逆转顺序表中的所有元素 算法思想:第一个元素和最后一个元素对调,第二个元素和倒数第二个元素对调,--,依此类推. void Reverse(int A[], int n) { int ...

  5. 邓俊辉数据结构学习心得系列——数据结构中所研究的算法

    写在前面的话: 本文只是个人学习邓俊辉老师C++数据结构的整理,包含了很多个人的见解(从内容到材料的组织形式).所整理的内容不保证逻辑性和完整性,仅供参考. 算法的基本性质: 有正确的输入 有正确的输 ...

  6. JavaScript 实现数据结构中的所有算法---通俗易懂

    1.我以为JavaScript 很垃圾很简单,没有想到,它能实现C 语言和C++ 实现的数据结构和算法.一句话总结:大道至简.python 也是这样. 2.我主要是看了这个博主,很厉害的前端大牛. h ...

  7. php实现数据排序算法,PHP实现数据结构中的排序算法_PHP教程

    直接插入排序为止. [代码实现] 实现:与增量间隔的数比较,直到把大的数放到最后 1) { $d=intval($d / 2);//分组间隔,2为n值,n值减少时,移动的趟数和数据增多 $temp=N ...

  8. <<数据结构中最全的8种排序算法总结>>

    数据结构中最全的8种排序算法总结 1.插入排序 代码如下: 2.希尔排序 代码如下: 3.选择排序 代码如下: 4.堆排序 代码如下: 5.冒泡排序 代码如下: 6.快速排序 代码如下: 7.归并排序 ...

  9. 数据结构中的7种排序算法

    数据结构中的7种排序算法 排序是将一个记录的随意序列又一次排列成一个按键值有序的序列. 时间复杂度主要考虑元素的移动次数. 结构例如以下: 1.直接插入排序 1,定义:依次将待排序序列中的每个记录插入 ...

  10. Kiner算法刷题记(十四):数据结构中的“渣男”——单调栈(数据结构基础篇)

    系列文章导引 系列文章导引 开源项目 本系列所有文章都将会收录到GitHub中统一收藏与管理,欢迎ISSUE和Star. GitHub传送门:Kiner算法算题记 知识回顾 我们之前讨论过单调队列,知 ...

最新文章

  1. google ProtoBuf开发者指南
  2. ajax按钮改变数据状态
  3. 查看mysql是否安装成功和mysql的版本信息
  4. 一比特控制所有:通过一比特绕过Windows 10保护
  5. docker 部署java_使用Java EE 7,WildFly和Docker进行持续部署–(第1部分)
  6. java文件序列化_Java序列化与反序列化,文件操作
  7. 赛锐信息:SAP ABAP 概述
  8. python pow_Python pow()
  9. 记录是为了遗忘——印象笔记伴你成长
  10. STL中的序列式容器——priority_queue(优先队列)
  11. RapidMiner 数据转换
  12. Android 如何测试你的Base64是否正确展示
  13. 建站|全网最系统的色彩搭配指南,教你制作吸睛网站
  14. idea 关闭检查更新_intellij idea怎么关闭自动更新
  15. c语言自定义输出小数点位数_c语言double类型默认输出小数几位
  16. UI设计中一致性为什么这么重要
  17. 2018款Y7000升级硬盘+迁移、升级黑苹果
  18. 织梦html5博客模板,html5纯新闻资讯个人博客织梦模板(自适应)
  19. linux bcm43142无线网卡驱动安装,Centos7.7安装bcm43142(博通)无线网卡驱动(示例代码)...
  20. 账龄分析表excel模板_商品分析之季度订货分析表 | 附模板 |商品管理

热门文章

  1. Python给手机发通知
  2. SAP报工时修改工作中心
  3. 微软进入RPA市场,这意味着什么?
  4. 光场相机系列-----相机标定
  5. MenuInfo.java10
  6. 华工的计算机专业硕士就业前景,这所热门地区的985就业率排名第一!不想了解下吗?...
  7. 1000x计算机 案例解析,索尼WI-1000X耳机连接win10电脑方法讲解
  8. 秒杀系统-商品详细页多级缓存实战(一)
  9. 月均数据_【分析案例】python分析医院销售数据
  10. [unknown OJ] 养花