堆排序

堆排序堆是一种特殊的树形数据结构,其每个节点都有一个值,通常提到的堆都是指一棵完全二叉树,根节点的值小于或者大于两个子结点的值,同时,根节点的两个子树也分别是一个堆堆排序是一树形选择排序,再排序过程中,将 R[1...n]看成是一颗完全二叉树的顺序存储结构,利用完全二叉树中双亲节点和孩子节点之间的内在关系来选择最小的元素堆一般分为大顶堆和小顶堆 i 两种不同的类型.对于给定 n 个记录的序列(r(1),r(2

希尔排序

希尔排序希尔排序也称为缩小增量排序,它的基本原理如下:首先将待排序的数组元素分成多个子序列,使得每个子序列的元素个数相对较少,然后对各个子序列分别进行直接插入排序,待整个排序序列"基本有序"后,最后再对所有元素进行一次直接插入排序.具体步骤如下:选者一个步长序列 t1,t2...,tk,满足 ti>tj,tk=1 按步长序列个数 k,对待排序序列进行 k 趟排序每趟排序,根据对应的步长 ti,将待排序列分割成 ti

快速排序

快速排序快速排序是一种非常高效的排序算法,它采用"分而治之"的思想,把大的拆分为小的,小的再拆分为更小的,其原理如下:对于一组给定的记录,通过一趟排序后,将原序列分为两部分,其中前一部分的所有记录均比后一部分的所有记录小,然后再一次对前后两部分的记录进行快速排序,递归该过程,直到序列中的所有记录均有序为止具体而言,算法的步骤如下:(1)将=分解:将输入的序列 array[m..n]划分为两个非空子序列