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)的额外空间的排序)