排序算法

  1. 选择排序 Selection Sort

    一次选择排序,可以将某个区间的最小值排列到该区域的第一位,具体过程是:

    sort-1

  2. 冒泡排序 Bubble Sort

    一次冒泡排序,可以将某个区域序列的最大值排序到该区域的最后一位,具体过程是:

    sort-2

  3. 快速排序 Quick Sort

    选择一个数(比如序列的最后一位)作为基准数,将整个序列排序成两部分,一部分比该数小,另一部分比该数大,基准数在中间,然后对剩余的序列做同样的事情,直到排序完成

    sort-4

查询算法

  1. 顺序查找 Inorder Search

    即普通的遍历,属于算法的穷举法,没啥好解释的

  2. 二分查找 Binary Search

    如果一个序列是一个排序好的序列,则使用二分查找可以极大的缩短查找时间

    具体的做法是:

    查找该序列中间未知的数据

    1. 相等,找到
    2. 要找的数据较大,则对后续部分的数据做同样的步骤
    3. 要找的数据较小,则对前面部分的数据做同样的步骤
  3. 插值查找 Interpolation Search

    插值查找是对二分查找的进一步改进

    如果序列不仅是一个排序好的序列,而且序列的步长大致相同,使用插值查找会更快的找到目标。

    插值查找基于如下假设:下标之间的距离比和数据之间的距离比大致相同

    sort-5

    于是有

    1
    (target - a) / (g - a) ≈ (mid - minIndex) / (maxIndex - minIndex)

    从而有

    1
    mid ≈ (target - a) / (g - a) * (maxIndex - minIndex) + minIndex

注意:部分文章可能会在不就的将来更新

如果能够帮助到你,是小编最大的荣幸

当然 有 不好的地方 请大家帮忙指出 学习永无止境

小编一直认为 人外有人 天外有天 一起学习 共同进步

让我们共同加油吧!!!