1、插入排序
直接插入排序,是一种最简单的排序方法,它的基本操作是将一个记录插入到已排好序的有序表中,从而得到一个新的、记录数增1的有序表。
初始 38 65 27 76 13
i=1 13 选13为监视哨并假设为一个有序序列
i=2 13 38 待插入元素38>13
i=3 13 38 65 待插入元素65>38
i=4 13 27 38 65 待插入元素13<27<38
i=5 13 27 38 65 76 待插入元素76>65
2、快速排序
冒泡排序
原理是临近的数字两两进行比较,按照从小到大或者从大到小的顺序进行交换,
这样一趟过去后,最大或最小的数字被交换到了最后一位,。
初始关键字 49 38 65 97 76 13 27
第一趟排序过程:
38 49 65 97 76 13 27 //38和49比较 交换顺序
38 49 65 97 76 13 27 //49和65比较 不交换顺序
38 49 65 97 76 13 27 //65和97比较 不交换顺序
38 49 65 76 97 13 27 //97和76比较 交换顺序
38 49 65 76 13 97 27 //97和13比较 交换顺序
38 49 65 76 13 27 97 //97和27比较 交换顺序
第一趟排序 38 49 65 76 13 27 97
第二趟排序 38 49 65 13 27 76 97
第三趟排序 38 49 13 27 65 76 97
第四趟排序 38 13 27 49 65 76 97
第五趟排序 13 27 38 49 65 76 97
快速排序
3、选择排序法
简单选择排序法
与冒泡法比较。选择排序每一趟,只交换一次。
简单选择排序法
min(最小值下标),内层循环结束后比较min与i是否相等,不相等交换,相等不交换。
外层循环下标 i=1至i=5
内层循环下标 j=i+1至j=6
初始关键字 9 1 5 8 3 7
第一趟排序 1 9 5 8 3 7 i=1 min=1,j=2开始j++内层循环结束 min=2 交换顺序
第二趟排序 1 3 5 8 9 7 i=2 min=2,j=3开始j++内层循环结束 min=5 交换顺序
第三趟排序 1 3 5 8 9 7 i=3 min=3,j=4开始j++内层循环结束 min=3 不交换顺序
第四趟排序 1 3 5 7 9 8 i=4 min=4,j=5开始j++内层循环结束 min=6 交换顺序
第五趟排序 1 3 5 7 8 9 i=5 min=5,j=6开始j++内层循环结束 min=6 交换顺序