选择排序
- 遍历整个待排序的数组,从第一个元素开始。
- 在未排序的部分中,找到最小(或最大)的元素,并将其与第一个元素交换位置。
- 接着从第二个元素开始,重复步骤2,直到所有元素都被排序
迭代版
递归版
Time Complexity
C(n): the number of element comparisons 元素比较次数
Clearly, as n=1, C(1)=0;
Procedure sort is invoked i=1, and there are n elements in the array. Therefore ,in this call, there are n-1 element comparisons Therefore ,in this call, there are n-1 element comparisons plus the number of element comparisons that result from the recursive call sort(i+1) to sort the array A[2..n].
We have:
插入排序
插入排序
1.从第一个元素开始,该元素可以认为已经被排序
2.取下一个元素tem,从已排序的元素序列从后往前扫描
3.如果该元素大于tem,则将该元素移到下一位
4.重复步骤3,直到找到已排序元素中小于等于tem的元素
5.tem插入到该元素的后面,如果已排序所有元素都大于tem,则将tem插入到下标为0的位置
6.重复步骤2~5