no.1

FFT算法

快速离散傅立叶变换算法,用很快的速度把离散傅立叶变换在计算机中实现,在语音,图像,传感器,信号与系统中有广泛的应用。例如歼20刚出来时,不知道用的什么发动机,有人用歼20的声音做一下FFT变换,频谱和俄罗斯发动机类似,就知道了歼20用的是俄罗斯发动机。

no.2

不对称加密算法

生成不对等的密钥,用于互联网加密,IC卡加密,各种数字证书,VPN,HTTPS。是互联网安全通信的基础。现在电商和电子金融很是依赖这个算法。

no.3

AES对称加密算法

这个加密太变态了,使用数学的群论知识,以前有个软件如TrueCrypt使用的就是这个加密,后来因为斯诺登事件中斯诺登推荐使用被美国安全部门强制关闭了,因为根本破解不了。

no.4

JPEG压缩算法

这个也是变态算法,使用的数学知识很多,很多网上图片就是这种,支持有损压缩,低损压缩,是很多图像压缩算法的基础。

no.5

遗传算法

这个算法可以自我进化,模拟生物遗传机制,而且是被数学家证明过的算法。

no.6

粒子群算法

这个算法非常简单,但可以分布式并发运行,模拟鸟类寻食,简单实用。

no.7

分形算法

可以实现无限分形的地图或建模,很多动画都使用这种效果,可以做出很多美丽的图形。

no.8

神经网络算法

这个是过去经历风波最多的算法,三起三落,终于在计算机算力的帮助下突破深度神经网络,实现了大规模图像识别,最后在阿尔法狗对战中一战成名,最后人工智能上升为各国战略,广泛应用于经济,军事,科学等,很多手机商都把这个算法芯片化,提高手机处理复杂运算的能力。

no.9

SVM支持向量机算法

实现了多维空间中的分割算法,在小样本分类或识别中比神经网络效果好,有很强的数学理论,不同于神经网络是透明的实现,所有结果都可以解释,是人类运用数学知识实现算法的高峰,是很多机器学习算法的基础。

no.10

小波算法

把时域和频域相结合,是很多智能系统的背后算法,在信号处理中有好的表现能力,解决了过去时域和频域的不统一问题,很多军事武器或工业系统都使用这个算法。

no.11

卡尔曼滤波算法

一种利用线性系统状态方程的算法,用于去除噪声和干扰,据说最早在美国登月时(那里多是模拟系统)一战成名。

no.12

MapReduce算法

看上去很简单的算法,但非常容易分布式实现,是大数据处理软件Hadoop的基础,可以处理PB(1千个TB)级数据,后面发展了很多大数据工具都是类似原理。

no.13

数据库索引算法BTree

多数信息系统是以数据库后台为基础,数据库中BTree算法可以加速数据查询速度,是很多数据库查询算法的基础,这个算法也有很多派生算法。

no.14

LZMA文件压缩算法

压缩率很高,速度快,是开源软件7zip软件的基础,超过了过去的zip压缩算法,后面以此为基础也有很多发展算法。

no.15

Hash算法

比特币、以太坊等加密货币的基础,比特币使用的Hash算法是SHA256,另外经常用于加密的叫MD5算法,很多Nosql数据存储系统也是基于Hash算法,如用于内存计算的Redis,可以显著提高速度,很多电商秒杀系统是使用这种算法。

===========================================================================================================================================================================================================================================================================

Btree 索引

索引是帮助数据库高效获取数据的一种数据结构,通过提取句子主干,就可以得到索引的本质。

m-way查找树

如果想了解Btree,需要首先了解m-way数据结构。

m-way查找树是是一种树形的存储结构,主要特点如下,

  • 每个节点存储的key数量小于m个
  • 每个节点的度小于等于m
  • 节点key按顺序排序
  • 子树key值要完全小于、大于或介于父节点之间

例如,
3-way如图,m为3,那么每个节点最多拥有为2个(m-1),

待索引元素列表为:
[5, 7, 12, 6, 8, 3, 4]

Btree查找树

Btree是一种平衡的m-way查找树,它可以利用多个分支节点(子树节点)来减少查询数据时所经历的节点数,从而达到节省存取时间的目的。

主要特点如下,

  • 每个节点的key数量小于m个(与m-way相同)
  • 除根节点和叶子节点的其他节点存储key的个数必须大于等于m/2
  • 所有叶子节点都处于同一层,也就是说所有叶节点具有相同的深度h(树的高度,也意味着树是平衡的)

Btree的查找

必须从根节点开始采用二分法查找,所以时间复杂度为O(logn)

Btree的插入

为了保证树的平衡,如果带插入节点的key数量小于m-1个,则直接插入(不会违反第一条特性),否则,需要将该节点分为两部分,再执行该操作。

详细插入操作可参考:http://www.cnblogs.com/yangecnu/p/introduce-b-tree-and-b-plus-tree.html

B+tree查找树

B+tree是基于Btree的变体,与Btree不同之处在于,

  • 非叶子节点的key个数等于m
  • 每个节点的下级指针为n个(n为关键字个数,而不是n+1个)
  • 为所有叶子节点增加一个链指针(注意链上的数据是有序的)
  • 所有key都存在叶子节点中

为什么使用Btree结构

索引本身也很大,不可能全部存储在内存中,因此索引往往以索引文件的形式存储的磁盘上。
索引查找过程中就要产生磁盘I/O消耗,相对于内存存取,I/O存取的消耗要高几个数量级,所以评价一个数据结构作为索引的优劣最重要的指标就是在查找过程中磁盘I/O操作次数的渐进复杂度。(换句话说,索引的结构组织要尽量减少查找过程中磁盘I/O的存取次数。)

为了达到降低磁盘I/O的目的

  • 磁盘按需读取,要求每次都会预读的长度一般为页的整数倍, 数据库系统将一个节点的大小设为等于一个页,这样每个节点的元素数据只需要一次I/O就可以完全载入
  • 每次新建节点时,直接申请一个页的空间,这样就保证一个节点物理上也存储在一个页里,加之计算机存储分配都是按页对齐的,就实现了一个node只需一次I/O
  • 把B-tree中的m值设的非常大,就会让树的高度降低,有利于一次完全载入

红黑树

红黑树BST的时间复杂度是依赖于树的高度,但是,红黑树的高度与Btree相比,高度更大。

计算机领域有哪些精妙绝伦的设计相关推荐

  1. 计算机科学家 成就,25年来的最高成就!MIT科学家让计算机提供创意,可自动设计机器人形态...

    原标题:25年来的最高成就!MIT科学家让计算机提供创意,可自动设计机器人形态 来源:学术头条 作者:阳光 [新智元导读]MIT的研究人员成功开发了一种计算机系统,利用该系统可以对机器人的形状进行仿真 ...

  2. 计算机领域中信息经转化,统考计算机应用基础06091002真题

    <统考计算机应用基础06091002真题>由会员分享,可在线阅读,更多相关<统考计算机应用基础06091002真题(3页珍藏版)>请在人人文库网上搜索. 1.计算机应用基础2( ...

  3. 计算机领域的顶级会议和期刊

    SCI或SCIE收录的本学科刊物清单请登陆 http://www.isinet.com/cgi-bin/jrnlst/jloptions.cgi?PC=K 和http://www.isinet.com ...

  4. 计算机领域的范式,编程领域的范式转移

    范式转移(Paradigm shift),这个名词最早出现于美国科学哲学家托马斯·库恩的代表作之一<科学革命的结构>.库恩认为范式是指特定的科学共同体从事某一类科学活动所必须遵循的公认的模 ...

  5. 计算机用英语表示方法有哪些,在计算机领域中,通常用英文单词“bit”来表示( )...

    答案 查看答案 解析: [解析题]现代计算机系统由硬件系统和软件系统组成.人类直接操控硬件系统太复杂了,所以,将硬件的功能进行封装,只提供一个接口给人类使用,这个接口就是操作系统. [解析题]计算机网 ...

  6. 计算机操作系统的新技术新知识,计算机操作系统教程:核心与设计原理

    计算机操作系统教程:核心与设计原理 语音 编辑 锁定 讨论 上传视频 <计算机操作系统教程--核心与设计原理>是2007年清华大学出版社出版的图书,作者是范策.许宪成.黄红桃. 书     ...

  7. OpenCL用于计算机领域的13个经典案例

    摘要:当使用加速器和OpenCL时,哪种类型的算法更加快速?来自弗吉尼亚理工大学的Wu Feng教授和他的团队例举了一份算法列表,分享了OpenCL常被用于计算机领域的13个经典案例. 哪种算法可以最 ...

  8. 未来计算机领域最急缺的人,未来十年最紧缺职业 没人愿意干的高薪职业

    未来十年最紧缺职业 没人愿意干的高薪职业2019-03-19 09:25:56文/刘美娟 未来十年中国最紧缺的高薪职业类型有:金融分析师.理财规划师以及动漫设计师等. 未来最紧缺的高薪职业 金融分析师 ...

  9. 208计算机领域,中医药大学-计算机基础208版-1-7次作业.doc

    中医药大学-计算机基础208版-1-7次作业 1. 计算机中用来保存程序和数据,以及运算的中间结果和最后结果的装置是 B.内存和外存 2. 计算机显示器画面的清晰度决定于显示器的 C.分辨率 3. 所 ...

最新文章

  1. win10商店打不开_科技资讯:Win10系统电脑的应用商店老是打不开还闪退怎么办
  2. socket编码问题
  3. jdk8分组统计字段和_JDK 8流和分组
  4. jQuery基础学习笔记(中)
  5. 物以稀为贵-网管狂妄的原因
  6. Linux使用SIGALARM信号的定时器
  7. 网络相关、firewalld和netfilter、netfilter5表5链介绍、iptables语
  8. STM32CubeMX | 30-使用硬件SPI读写FLASH(W25Q64)
  9. 计算机拨号连接无法建立连接,电信拨号上网连接不上的解决方法
  10. [独立游戏][纳税]个人独立游戏缴税纳税相关问题
  11. HTML班级网站实例(笔记1)
  12. PostgreSQL递归查询(从子到父、从父到子)
  13. uni-app的学习及使用
  14. 词性标注集句和句法分析标注集
  15. 深入了解Linux内核MMU管理机制
  16. 百度之星2009程序设计大赛 初赛第一场试题
  17. Oracle同义词。。。
  18. 围棋计算机运算,计算机围棋中的算法研究
  19. 一文详解:双向ESD二极管型号及选型
  20. 2021-2027全球与中国工业气压调节器市场现状及未来发展趋势

热门文章

  1. oracle建表备份数据,oracle建表备份脚本,如果update的数据不对,可以从WEB_RI_PLYEDR_CED_BAK找回...
  2. 贝壳找房面试之c++基础问答
  3. 1014 福尔摩斯的约会 (20 分)
  4. 根据Excel表头的位置数转化为对应列名称
  5. debian常用命令整理
  6. Android 源码 Camera2 预览流程分析一
  7. 基于生理信号的多模态情绪识别模型
  8. 惊魂一小时:全国域名解析首遭大规模污染
  9. MVP登录 二维码扫描
  10. element日历组件只显示月和日,把年份隐藏掉