数据结构相关知识(排序)
1.插入排序:在第i趟排序中,把序列的第i+1个元素插入到前面i个元素组成的有序序列中,使得前i+1个元素变成一个大小为i+1,且有序的序列
2.选择排序:第i趟排序中从后面n-i+1个元素中选择一个最小的元素,将其置于这n-i+1个元素的前面。选择排序的元素之间的比较次数和元素的初始排列序列无关,都是要比较(n-1)n/2次
3.冒泡排序,这个比较简单,就不说了
4.谢尔排序(shell排序):首先确定一个元素的间隔数gap。将参加排序的元素按gap分割成若干个子序列(即把那些位置相隔为gap的元素看作一个子序列),然后对子序列里的元素按某种排序方式变成有序序列,然后减小gap值,一直到gap=0
5.堆排序:
1)调整堆的思想就是,先确定根节点的两个子树谁更大,然后把根节点往大子树移
2)建初始堆时,从最后一个分支结点(n为结点个数,则最后一个分支结点为n/2-1
)开始调整,一直调整成大顶堆
3)不稳定
6.归并:
1)稳定
7.快排:
1)不稳定
8.稳定性的总结:
所以就是,只有冒泡+插入+归并是稳定的;而选择+堆+快排+希尔是不稳定的