统治世界的 10 大算法,你知道几个?
原文 | The real 10 algorithms that dominate our world
1 排序算法
冒泡排序(bubble sort) — O(n^2)
鸡尾酒排序(Cocktail sort,双向的冒泡排序) — O(n^2)
插入排序(insertion sort)— O(n^2)
桶排序(bucket sort)— O(n); 需要 O(k) 额外空间
计数排序(counting sort) — O(n+k); 需要 O(n+k) 额外空间
合并排序(merge sort)— O(nlog n);需要 O(n) 额外空间
原地合并排序— O(n^2)
二叉排序树排序 (Binary tree sort) — O(nlog n)期望时间;O(n^2)最坏时间;需要 O(n) 额外空间
鸽巢排序(Pigeonhole sort)— O(n+k); 需要 O(k) 额外空间
基数排序(radix sort)— O(n·k); 需要 O(n) 额外空间
Gnome 排序— O(n^2)
图书馆排序— O(nlog n) withhigh probability,需要(1+ε)n额外空间
选择排序(selection sort)— O(n^2)
希尔排序(shell sort)— O(nlog n) 如果使用最佳的现在版本
组合排序— O(nlog n)
堆排序(heapsort)— O(nlog n)
平滑排序— O(nlog n)
快速排序(quicksort)— O(nlog n) 期望时间,O(n^2) 最坏情况;对于大的、乱数列表一般相信是最快的已知排序
Introsort—O(nlog n)
Patience sorting— O(nlog n+k) 最坏情况时间,需要额外的 O(n+ k) 空间,也需要找到最长的递增子串行(longest increasing subsequence)
Bogo排序— O(n× n!) 期望时间,无穷的最坏情况。
Stupid sort— O(n^3); 递归版本需要 O(n^2)额外存储器
珠排序(Bead sort) — O(n) or O(√n),但需要特别的硬件
Pancake sorting— O(n),但需要特别的硬件
stooge sort——O(n^2.7)很漂亮但是很耗时
2 傅立叶变换与快速傅立叶变换
3 Dijkstra 算法
4 RSA算法变换
5 安全哈希算法
6 整数因式分解
7 链接分析
8 比例积分微分算法
9 数据压缩算法
10 随机数生成
喜欢文章,点个在看
统治世界的 10 大算法,你知道几个?相关推荐
- 真正统治世界的十大算法(转)
不久前的某一天,我在浏览Reddit发现了一篇有趣的文章<统治世界的十大算法>,作者George Dvorsky在那篇文章中试图解释算法之于当今世界的重要性,以及哪些算法对人类文明最为重要 ...
- 真正统治世界的十大算法
本文由 伯乐在线 - Justin Wu 翻译自 Marcos Otero .欢迎加入 技术翻译小组 .转载请参见文章末尾处的要求. 不久前的某一天,我在浏览Reddit发现了一篇有趣的文章 ...
- 统治世界的十大算法(转)
原文:http://www.ctocio.com/ccnews/15714.html 软件正在吃掉世界,而软件的核心则是算法.算法千千万万,又有哪些算法属于"皇冠上的珍珠"呢?Ma ...
- 细数二十世纪最伟大的10大算法
导读:作者July总结了一篇关于计算方法的文章< 细数二十世纪最伟大的10大算法 >. 一.1946 蒙特卡洛方法 [1946: John von Neumann, Stan Ulam, ...
- 编程界称霸全球的10大算法,你到底了解几个呢?
来源:课程图谱博客 本文约2300字,建议阅读9分钟 本文带你了解编程界称霸全球的十大算法. 算法究竟是什么? 简而言之,算法代表经过明确定义的计算过程,用于将输入转化为输出. 可以这样理解,算法是用 ...
- 干货丨机器学习新手一定要掌握的10大算法
文章来源:机器之心 本文介绍了机器学习新手需要了解的 10 大算法,包括线性回归.Logistic 回归.朴素贝叶斯.K 近邻算法等. 在机器学习中,有一种叫做「没有免费的午餐」的定理.简而言之,它指 ...
- 编程面试过程中最常见的10大算法
编程面试过程中最常见的10大算法 编程语言:C/C++ 1. 字符串 如果IDE没有代码自动补全功能,所以你应该记住下面的这些方法. toCharArray() // 获得字符串对应的char数组 A ...
- 编程面试的10大算法概念汇总
编程面试的10大算法概念汇总 嘿,第一次翻译文章,在ProgramCreek看到的,原文章名为Top 10 Algorithms for Coding Interview, 对于我这个明年即将直奔BA ...
- 数学狂想曲(三)——统计杂谈, PID算法, 20世纪10大算法, 矩阵向量的积
http://antkillerfarm.github.io/ 统计杂谈 统计模拟 统计模拟是数理统计中非常有用的工具之一, 它是利用计算机产生某概率模型的随机数,再通过这些随机数来模拟真实模型. 这 ...
最新文章
- Host ‘XXX‘ is not allowed to connect to this MySQL server 解决方案/如何开启MySQL的远程帐号
- Endnote X3 出现中文乱码
- 库函数和系统调用的区别
- 【剑指offer】面试题52:两个链表的第一个公共节点(java)
- python怎么安装myqr_python二维码操作:对QRCode和MyQR入门详解
- 【bzoj3576】 Hnoi2014—江南乐
- Android 关于解决MediaButton学习到的media控制流程
- html点导航栏换图片,jQuery点击导航栏选中更换样式的实现代码
- 鸡蛋究竟宜不宜生吃——看阿里云计算怎么破?
- 14个阿里高管的研发管理实践和思考 | 凌云时刻
- “舱驾融合”技术发展趋势分析
- asp探针,用来检测Web服务器相关特性
- linux 日期、星期简写
- Win7系统无法被远程桌面连接如何解决
- SAEJ3061汽车信息安全指南文档
- 在线qq的html代码,网页QQ
- 社工心理学:如何让LOL找你约架的社会人给你道歉
- 5分钟外设学堂:耳机不响别慌,换个插头能救活!
- java路径是什么_什么是java路径?
- sqlite expert 教程