(1.3.1)各查找和排序等算法一览

来源:互联网 发布:最好的矩阵论教材 编辑:程序博客网 时间:2024/05/14 18:26

  • 查找排序等算法一览
  • 查找算法
    • 查找顺序查找
    • 查找折半查找和差值法
    • 查找斐波那契查找
    • 查找位图法
  • 排序算法
    • 插入类
    • 选择类
    • 交换类
    • 归并类
    • 索引
    • 线性
    • 外排序

查找排序等算法一览

算法 平均时间 最差时间 最好时间 稳定度 空间 备注 思想 插入 O(n2) O(n2) O(n) 稳定 O(1) 大部分已排序时较好 希尔 O(nlogn) O(ns)[s属于(1,2)] O(n) 不稳定 O(1) s是所选分组 冒泡 O(n2) O(n2) O(n) 稳定 O(1) n小时较好 快速 O(nlogn) O(n2) O(nlogn) 不稳定 O(nlogn) n大时较好 分治法 交换 O(n2) O(n2) O(n) 不稳定 O(1) n小时较好 选择 O(n2) O(n2) O(n2) 不稳定 O(1) n小时较好 堆 O(nlogn) O(nlogn) O(nlogn) 不稳定 O(1) n大时较好 归并 O(nlogn) O(nlogn)) O(nlogn)) 稳定 O(n) n大时较好 分治法 基数 O(d(r+n)) O(d(r+n)) O(d(r+nd)) 稳定 O(n) B是真数(0-9),R是基数(个十百) 傅里叶变换 分治法 最长公共子序列 动态规划 克鲁斯卡尔 O(eloge) 最小生成树,e为边数目 贪心法 普里姆 O(n2) 最小生成树 贪心法 迪杰斯特拉 O(n2) 点的最短路径 动态规划 佛洛依德 O(n3) 点对的最短路径 动态规划 拓扑排序 O(n+e) 关键路径 O(n+e) 辗转相除法 O(logn) 最大公约数,gcd(a,b)= gcd(b,a mod b)

口诀:
(1)快希以log2n入堆:快速、希尔、堆排序不稳定
(2)快希选一堆不稳定:快速、希尔、选择、堆排序不稳定
(3)比较次数和初始化无关的:选堆鸡和龟过年关:选择、堆、基数排序、归并排序无关
(4)快速排序最均衡,但是有序时最坏

查找算法

查找:顺序查找

  • (1.3.2)查找:顺序查找与哨兵

查找:折半查找和差值法

  • (1.3.2.1)查找:二分查找与差值查找

查找:斐波那契查找

  • (1.3.2.2)查找:斐波那契查找

查找:位图法

  • (1.3.2.3)查找:位图法

排序算法

插入类

  • (1.3.3)插入排序:直接插入、交换插入、折半插入
  • (1.3.3.1)插入排序:二路插入
  • (1.3.3.2)插入排序:表折半插入

选择类

  • (1.3.7)选择排序:简单选择、树形选择
  • (1.3.7.1)选择排序:堆排序

交换类

  • (1.3.4)交换排序:冒泡排序
  • (1.3.4.1)交换排序:快速排序

归并类

  • (1.3.5)归并排序:二路归并

索引

线性

  • (1.3.6)线性排序:计数排序
  • (1.3.6.1)线性排序:基数排序
  • (1.3.6.2)线性排序:桶排序

外排序

目录:

总目录

0 0
原创粉丝点击