排序算法

来源:互联网 发布:使命召唤ol宏数据 编辑:程序博客网 时间:2024/05/22 10:31

排序 

定义:设有记录序列:{ R1、R2   ……….. Rn },其相应的关键字序列为:{ K1、K2   ………..   Kn };若存在一种确定的关系: Kx<= Ky<= … <=Kz,则将记录序列 { R1、R2   ………..   Rn } 排成按关键字有序的序列 { Rx、Ry   ………..   Rz }的操作,称之为排序。

关系是任意的,通常使用小于(递增)、大于(递减)等关系。

稳定与不稳定:若记录序列中的任意两个记录  Rx、Ry  的关键字 Kx = Ky  ;如果在排序之前和排序之后,它们的相对位置保持不变,则这种排序方法是稳定的,否则是不稳定的。

内部排序:全部数据可同时放入内存进行的排序。    

 外部排序:文件中数据太多,无法全部调入内存进行的排序。

约定:

1)若不加说明本文涉及到的数据以顺序方式利用一维数组r存储

2)数据最终的排序是递增序

3)不失一般性,为简化算法,数据均以整型为例子

4)排序的数据个数用n表示

常用的排序算法

(1)选择类排序:简单选择排序

(2)交换类排序:冒泡排序、快速排序

(3)插入类排序:直接插入排序、希尔排序


以上排序算法的总结:

排序算法平均情况最好情况最坏情况辅助空间稳定性冒泡排序O(n^2)O(n)O(n^2)O(1)稳定简单选择排序O(n^2)O(n^2)O(n^2)O(1)稳定直接插入排序O(n^2)O(n)O(n^2)O(1)稳定希尔排序O(nlogn)O(n^1.3)O(n^2)O(1)不稳定快速排序O(nlogn)O(nlogn)O(n^2)O(logn)不稳定

0 0
原创粉丝点击