排序

排序是对一组数据处理的一种算法.主要操作是对数据的递增或者递减的排列操作.

而在排序中我们及其重视数组排序的稳定性:指的是连个相等的数据,如果经过排序后,排序算法能保证其相应位置不发生变化,则我们称该算法具备稳定性.

我么一般常见的排序方法为

(1);插入排序:原理是分为有序区间和无序区间.而他是一个稳定排序.其时间复杂度为0(o2),空间复杂度为o(1)

(2)希尔排序:实质上也是一种插入排序,他只是将一个数组划分为很多个小数组,想对他们进行插入排序,之后减小数组的规模在继续进行排序,直到数组规模减小到只剩一个数组的时候进行插入排序..也就是堆插入排序的一种优化.时间复杂度为o(n^1.3).空间复杂度为o(1).

(3)选择排序:也是将数组法分为有序区间和无序区间,将有序区间的最后一个数和无序区间对的所有数,做对比.循环这样的操作直到无序区间的长度为0.其时间复杂度为o(n2).空间复杂度为o(1).

(4)堆排序:首先将数组建为一个大堆,之后将对顶元素取出和最后一个元素交换,删除堆中的最后一个元素,之后再向下调整,找出对顶元素,重复上述操作直到堆为空,结束.时间复杂度为0(n*logn)空间复杂度为o(1)

(5)冒泡排序:首先键数组换分为已排序区间,和无序区间,将无序区间的相邻数据对比交换元素,直到进入已排序区间,重复以上操作,直到无序区间的长度为零.时间复杂度为o(n2)空间复杂度为o(1).

你可能感兴趣的:(排序)