数据结构 排序

算法分为7种分为两大类
简单算法:冒泡、简单选择、直接插入。
改进算法:希尔排序、堆排序、归并排序、快速排序。
数据结构 排序
冒泡排序
冒泡排序:一种交换排序,它的基本思想是 两两比较交相邻记录的关键字,如果反序则交换,直到没有反序为止。

简单选择排序算法
简单选择排序算法:就是通过n-i次关键字间的比较,从n-i+1个记录中选出关键字最小的记录,并和第i(1<=i<=n)个记录交换

直接插入排序算法
直接插入排序算法:的基本操作是将一个记录插入带已经排好序的有序表中,从而得到一个新的、记录数增1的有序表

堆排序
堆排序具有下列性质的完全二叉树:每个节点的值都大于或等于其左孩子节点的值,成为大顶堆,或者每个节点的值都小于或等于其左右孩子节点的值,成为小顶堆
数据结构 排序
堆排序:将待排序的序列构造成一个大顶堆,此时 整个序列的最大值就是堆顶的根节点,将它移走(其实就是将其与堆数组的末尾元素交换,此时末尾元素就是最大值)然后将剩余的n-1个序列重新构造成一个堆,这样就会得到n个元素中的次小值,如此反复执行,便能得到一个有序序列了
数据结构 排序
数据结构 排序
归并排序
归并排序:假设初始序列含有n个记录,则可以看成是n个有序的子序列,每个子序列的长度为1,然后两两归并,得到[n/2]([x]表示不小于x的最小整数)个长度为2或11的有序子序列,载两两归并,。。。,如此重复,直至得到一个长度为n的有序序列为止,这种排序方法称为2路归并排序

快速排序算法
快速排序:的基本意思是通过一趟排序待排记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列有序的目的