数据结构排序
Posted xuzhiwen
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据结构排序相关的知识,希望对你有一定的参考价值。
一:排序
为什么排序
便于查找
什么是排序
时间效率-快 排序的速度快
空间效率-占用空间小
还有就是稳定性强
指排序的位置变化,比如相同数字在同一个数列中 如果后面的排到先前的前面表示不稳定
二:排序方法
插入排序
把第一个数看成一个有序的序列,如何把后面的数插入,小的前面,大的后面
希尔排序
先取一个正整数d1小于数列中数的个数n,把所有相隔d1的记录为一组,组内进行直接插入排序;然后取d2<d1;
直至d1=1
一般去d1=n/2 di+=d1/2,如果结果为偶数,则加1
希尔排序是一种不稳定的排序方法 ,初始序列的不同会影响算法的效率
直接选择排序
把数列的最小的数选择出来与第一个数交换,然后在选最小的数与第二个数交换,依次类推
堆排序
堆:数列r1,r2,r3......rn满足ri<=r2i,ri<=r(2i+1)称为小顶堆,或者ri>=r2i,ri>=r(2i+1)称为大顶堆
堆排序就是利用堆的特性对记录序列进行排序的一种排序方法
把小顶堆或者大顶堆的r1取出来,再把剩余的数排成堆,就能得到一个有序的数列
冒泡排序
每趟记录两两比较,“前小后大”,或者“前大后小”。
稳定,空间效率 1 ,时间效率n2
快速排序
从待排序列中一个元素作为中心,所有比它小的排在前面,所有比它大的一律排在后面,然后形成两个子表,对这两个子表继续上述操作,知道每个子表只剩一个元素,就有有序序列了。
不稳定的一种排序方法
归并排序
可以把一个长度为n的无序序列看成n个长度为1的有序序列,然后两两归并,得到n/2个长度为2的有序序列,知道得到一个长度为n的有序序列。
时间效率o
空间o
稳定性稳定
以上是关于数据结构排序的主要内容,如果未能解决你的问题,请参考以下文章