• Sort

    快速排序

    快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序 n 个项目要Ο(nlogn)次比较。在最坏状况下则需要Ο(n^2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο(nlogn) 算法更快,因为…

  • Sort

    归并排序

    归并排序是建立在归并操作上的一种有效的排序算法,该算法是采用分治法的一个非常典型的应用。 将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序 时间复杂度:最好、最坏、平均都为o(nlogn…

  • Sort

    堆排序

    堆排序是对简单选择排序的一种改进,简单选择排序没有把每一趟的比较结果保存下来,造成重复比较。 堆是具有下列性质的完全二叉树:大顶堆即每个节点的值都大于或等于其左右孩子节点的值;小顶堆即每个节点的值都小于或等于其左右孩子节…

  • Sort

    直接插入排序与希尔排序

    1.直接插入排序类似于打牌,对手里的几张牌进行插入排序,适用于元素个数较少的情况 将一个记录插入到已经排好序的有序表中,从而得到一个新的记录数增1的有序表 2. 希尔排序:将原本有大量记录数的记录进行分组,分割成若干个子…

  • Sort

    冒泡排序与简单选择排序

    冒泡排序是最基本的排序算法,有点类似于暴力破解,两层for循环依次比较,较小值(较大值)逐渐上浮,最小值(最大值)最后到达最上端。 思考:如果此时待排序数组为a = [2,3,4,5,6,7,8,9,1],那么进行完第一…