欢迎来到小雕博客,玩的开心。
## 0、算法概述 ### 0.1 算法分类 十种常见排序算法可以分为两大类: **比较类排序**:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此也称为非线性时间比较类排序。 **非比较类排序**:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以 · · · · · · · ·
## 1、树的概念 树(tree)是一种抽象数据类型(ADT)或是这种抽象数据类型的数据结构,用来模拟具有树状结构性质的数据集合。他是由 n (n>=1)个有限节点组成一个具有层次关系的集合。把他叫做“树”是因为它看起来像一颗倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点: - 每个节点 · · · · · · · ·
## 1、基本概念 二叉树是每个节点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree) ## 2、性质(特性) - **性质1**:在二叉树的第 i 层上至多有 2(i-1)个节点(i > 0) - **性质2**:深度为 k 的二 · · · · · · · ·
## 1、搜索 搜索是在一个项目集合中找到一个特定项目的算法过程。搜索通常的答案是真或假,因为该项目是否存在。搜索的几种常见方法:顺序查找、二分法查找、二叉树查找、哈希查找。 ## 2、二分法查找 二分法查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;缺点是要求待查表为有序表,且插入删除 · · · · · · · ·
## 1、排序算法 排序算法(Sorting algorithm) 是一种能将一串数据依照特定顺序进行排列的一种算法。 ## 2、排序算法的稳定性 **稳定性**: 稳定排序算法会让原本有相等键值的记录维持相对次序。也就是如果一个排序算法是稳定的,当有两个相等键值的记录 R 和 S ,且在原本的列表 · · · · · · · ·
归并排序是采用分治法的一个非常典型的应用。归并排序的思想就是先递归分解数组,再合并数组。 将数组分解最小后,然后合并两个有序数组,基本思路就是比较两个数组的最前面的数,谁小就先取谁,取了后相应的指针就往后移一位。然后再比较,直至一个数组为空,最后把另一个数组的剩余部分复制过来即可。 ## 1、归并排 · · · · · · · ·