每一次从前往后循环,每一次将当前区域内的最大值通过交换的方式交换到最后的位置上。
如:
a[9] = { 9,4, 5, 6, 1, 2, 3, 7, 8};
第一次循环将 9 交换到最后的位置上:a[9] = {4, 5, 6, 1, 2, 3, 7, 8, 9};
然后再通过 n 次循环,每次循环的长度 -1
即:
第二次循环将a[8] = {4, 5, 6, 1, 2, 3, 7, 8};内的最大值交换到最后面的位置上。
第三次循环将a[7] = {4, 5, 6, 1, 2, 3, 7};内的最大值交换到最后面的位置上。
以此类推
#include二、选择排序: 核心思想:#include #include #include #include #include #include #include
找到当前数组内的最大值,将此最大值和最后一个位置的数值进行交换
步骤:
1、找最大值(寻找并记录最大值下标):
(1)首先将 0 下标定为最大值下标
(2)从前往后循环,遇到大于当前最大值的数,就将遇到的最大值下标定为记录的最大值下标
2、将当前最大值的下标与区间的最后一位进行数值交换。
3、重复步骤1、2,依次寻找第2、3、4....大的数!
#include三、插入排序 核心思想:#include #include #include #include #include #include #include
当数字是一个数时,我们认为这个数是有序的,将当前数字插入到合适的位置上,如果当前位置的值小于前面的值,就和前面的值进行交换,直到前面的数字比当前数字小或下标为 0 为止。
如:
4,7,5
(1)4这个数字是有序的
(2)4,7 7这个数字比4大,所以,4,7也是有序的
(3)4,7,5
这个时候,我们可以想,根据(2)我们可以知道:5前面的数字是有序的,我们将5比7小,我们将其交换得:4,5,7 此时,5比7小,5比4大,所以4,5,7是一个有序得数组插入排序就完成了



