冒泡排序、选择排序和插入排序

一、冒泡排序

依次比较相邻的两个数,将小数放在前面,大数放在后面。即首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。重复以上过程,直至最终完成排序。

 

冒泡排序是稳定的。算法时间复杂度是O(n ^2)。






二、    选择排序

每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完。 选择排序是不稳定的排序方法。

 

选择排序是不稳定的。算法复杂度是O(n ^2 )。



三、    插入排序

 

每次从无序表中取出第一个元素,把它插入到有序表的合适位置,使有序表仍然有序。

 

直接插入排序是稳定的。算法时间复杂度是O(n ^2)


1) 稳定的:如果存在多个具有相同排序码的记录,经过排序后,这些记录的相对次序仍然保持不变,则这种排序算法称为稳定的。
    插入排序、冒泡排序、归并排序、分配排序(桶式、基数)都是稳定的排序算法。
 2)不稳定的:否则称为不稳定的。
    直接选择排序、堆排序、shell排序、快速排序都是不稳定的排序算法。

转载出处:http://www.cnblogs.com/linzheng/archive/2010/09/15/1827400.html


posted @ 2012-02-15 21:43  xiepeixing  阅读(413)  评论(0编辑  收藏  举报