python排序算法

1.冒泡排序

算法描述:

1.比较相邻两个元素的大小,如果第一个比第二个大,就互相交换;

2.从第一个元素到结尾的最后一对,重复上面的步骤。这样最大的元素就在最后一个;

3.从头重复上面的步骤,除了最后一个元素;

4.重复上面的步骤,直至排序完成。 

 

2.选择排序

算法描述:

1.初始状态:无序区为R[1…n],有序区为空;

2.将有序区里的最小的元素取出,依次存放到有序区内;

3.(n-1)趟结束,数组完成有序化。

 

 

 

算法分析:表现最稳定的排序算法之一,始终O(n^2)的时间复杂度。不占用额外的内存空间。

 

 

3.插入排序

算法描述:

1.从第一个元素开始,该元素可以认为已经被排序;

2.取出下一个元素,在已经排序的元素序列里从后往前扫描;

3.如果该元素(已排序的)大于取出的新元素,则将该元素移动到下一个位置;

4.重复步骤3,找到已排序的元素小于或等于新元素的位置;

5.将新元素插入;

6.从未排序的起始位置重复步骤2-5

 

 

算法分析:通常采用in-place排序(即只需要用到O(1)的额外空间的排序)

原文地址:https://www.cnblogs.com/hongdanni/p/9963296.html