博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
什么是算法,什么是数据结构
阅读量:6398 次
发布时间:2019-06-23

本文共 1259 字,大约阅读时间需要 4 分钟。

  尽管已经学了几年,对它们也可以说大致懂得。但是,作为非计算机专业的人员,还是不会比计算机专业人员懂得多。既然没有受过专门的学习训练,自然会有三天打鱼两天晒网的感觉,一天可能冒出一个念头。于是乎,写写现在的念头,一点也没有直接抄袭其他地方的资料,还是用自家的话说比较让自己懂!可能有错,但是不要怕,先错着,以后理解透了自然会在意识上修正。

  因为上次选修过算法与数据结构,受到课名的影响,虽然教材是《数据结构教程》,但总是以为自己学的是算法。实际上,自己在学习数据结构。

〇、引言

  用一个比喻描述。图书馆里的书好比数据,图书的摆放好比数据结构。要更好地管理图书就必须更好地摆放图书!比如,我可能这么摆放:

方案1:

  所有的书架上放在一个大房间中,依次摆放:古典文学,西方文学,中国文学,历年诺贝尔文学,天文学,地理学,中国历史,外国历史,信息,自动化,通信,电子电气...依次列举,这里还假设各个书架上的书不会有相同的,它们是并列关系,虽然有些牵强。(数组)

      如果我要找一本《围城》,那么我先到第一个书架上看看有没有这本书,发现没有又到下一个书架看,直到找到这本书。(搜索,线性搜索)

方案2:

  我先将大房子分成两个房间,分别称为社会科学图书,自然科学图书。然后两个房间又各自分为:历史、地理、政治;理科,工科。依次按照类别分。(树,各种树)

  如果我要找本《数据结构教程》,我先悠哉悠哉地走进自然科学图书房间,然后轻轻地抬头,看看房间牌子,进入工科房间。。。依次,很快找到这本书。(树的搜索logn时间复杂度)

  这就是数据结构的神奇。

  那什么是算法?这个只能牵强地接着比喻。我想学武功。我进入武功秘籍的图书房间之后,我抱着一大堆书跑出来。打开一看,有降龙十八掌,九阴真经,九阳神功,易筋经,乾坤大挪移,少林龙爪手,太极拳,醉拳,佛山无影脚,七伤拳。我暂时没想好学什么武功,因为各有厉害的地方,有学的时间长不伤身,有的速成但伤身,有的需要内力,有的速度快杀伤力弱,有的杀伤力强但速度极慢。有的虽然不是最厉害的,但简单易学。

  同样地,算法也有好坏之分:有的不能保证收敛,有的能收敛速度慢。有的虽然速度快,但需要内存大。有的虽然不是局部最优解,但是简单容易,有的是原址的,有的不是原址的。

一、数据结构

类别

栈:

队列:

链表:单链表、双链表

各种树:AVL树、2-3树、B树、红黑树、AA树、treap树、带权平衡树、k近邻树、伸展树、跳表...各种各样的树,很有意思

散列表:链接法、开放寻址法

主要研究下述的操作,希望更少的时间复杂度来操作:

建立

查询

插入

删除

二、算法

举例

最优化理论中各种:

动态规划:

整数规划:

各种非凸算法:遗传算法,蚁群算法,粒子群算法,模拟退火算法

...

研究目标:

希望算法收敛且速度快,全局最优,代码简单易懂,内存更好,原址,鲁棒性好

转载于:https://www.cnblogs.com/Wanggcong/p/4725134.html

你可能感兴趣的文章
我的友情链接
查看>>
开源Python网络爬虫资料目录
查看>>
NSRunLoop Internals
查看>>
Hadoop2.4.1分布式安装
查看>>
PHP利用socket来实现POST数据
查看>>
Connection is read-only问题的产生原因与解决方法
查看>>
Proxmox VE 部署维护
查看>>
Linux软件包安装与卸载
查看>>
centos5.x安装sphinx
查看>>
3分钟搭建Ant Design Pro前端开发环境( MyClouds的前端选型)
查看>>
Linux系统常用命令(二)
查看>>
简单的工厂模式学习
查看>>
温习如何画E-R图
查看>>
eclispe注释模板
查看>>
Thymeleaf教程 (三) 创建一个多语言的首页
查看>>
OSChina 周六乱弹 ——你们猜狗的舌头有多长
查看>>
OSChina 周日乱弹 —— 爱丽丝爱吃京酱肉丝
查看>>
2018.11月微信小程序优质开源项目
查看>>
IOS 未来几年的认知
查看>>
解决中文乱码--加密
查看>>