算法入门的不可不读的基本算法详解

一、十大经典排序算法

排序算法是算法中最基本算法之一

首先我们要知道几个相关的概念:

1. 时间复杂度(平均时间复杂度、最好情况、最坏情况)

2. 空间复杂度

3. 排序方式

4. 稳定性

时间复杂度: 执行算法需要的计算工作量

空间算法:执行算法所需的内存空间

排序方式:内部排序和外部排序

稳定性:排序后 2 个相等键值的顺序和排序之前它们的顺序相同

关于时间复杂度:
1.平方阶(O(n2)):冒泡排序、选择排序和插入排序
2.线性对数阶(O(nlog2n)): 归并排序、快速排序、堆排序和希尔排序
3.O(n+k):计数排序、桶排序
4.O(nxK):基数排序

稳定性:

稳定的排序方法:冒泡排序、插入排序,归并排序和基数排序、计数排序、桶排序
不稳定的排序方法: 选择排序、快速排序、希尔排序、堆排序


sort_img.png


十大排序具体内容

  1. 冒泡排序
  2. 选择排序
  3. 插入排序
  4. 希尔排序
  5. 归并排序
  6. 快速排序
  7. 堆排序
  8. 桶排序
  9. 计数排序
  10. 基数排序

二、七大经典查找算法

查找算法:是在信息中找到特定的信息元素。

  1. 查找算法分类:
    1. 静态查找 和 动态查找

  注:静态或动态是针对被查找表而言的,动态查找:被查找数组(表)中有删除和插入等操作

    1. 无序查找 和 有序查找

  无序查找:被查找的数组(表)有序无序均可。

  有序查找:被查找的数组(表)必须是有序

  1. 平均查找长度(Average Search Length ASL):查找的值Value 和 比较的关键值的个数的期望值(简单说:查找成功次数的期望值)

查找成功的平均查找长度为:

ASL = PiCi;*

  Pi:查找表中第i个数据元素的概率。

  Ci:找到第i个数据元素时已经比较过的次数。




七大查找具体内容

  1. 顺序查找
  2. 二分查找
  3. 插值查找
  4. 斐波那契查找
  5. 树表查找
  6. 分块查找
  7. 哈希查找

本仓库持续更新中……

对一个的github地址:https://github.com/FlameDream/Learn_Algorithm

你可能感兴趣的:(算法入门的不可不读的基本算法详解)