一维数组 排序 一、 选择排序法: 数据已经放在一维数组中,要求从小到大排序
数组 20 4 36 …… 45 109 3 下标 1 2 3 …… n-2 n-1 n 排序过程: 1、 从第 1项到第 n项选择最小值,然后将第 1项与最小项交换
2、 从第 2项到第 n项选择最小值,然后将第 2项与最小项交换
3、 …… 4、 从第 n-1项到第 n项选择最小值,然后将第 n-1项与最小项交换
注意:最小值及下标由临时变量存储
所以,需要两层循环:外层循环 i执行 n-1次,内层循环 j执行 n-i-1次 For i=1 to n-1 最小值及下标由临时变量存储 tmpVal=第i项值 tmpId=第i项下标 For j=i+1 to n 若tmpVal >第j项值,则: tmpVal=第j项值 tmpId=第j项下标 next 将第i项与最小项交换 Next 从大到小呢
二、 冒泡排序法: 数据已经放在一维数组中,要求从小到大排序
数组 20 4 36 …… 45 109 3 下标 1 2 3 …… n-2 n-1 n 两种方法:小数上浮和大数下沉
小数上浮排序过程:从第n项到第k项,依次相临两项比较,若第m项小于第m-1项,则两项交换
(k从2到n) 第1次执行:结果是第1项至第n项中的最小值放到第1项中 1、 若第n项小于第n-1项,将第n项与第n-1项交换
2、 若第n-1项小于第n-2项,将第n-1项与第n-2项交换
3、 …… 4、 若第2项小于第1项,将第2项与第1项交换
第2次执行:结果是第2项至第n项中的最小值放到第2项中 1、 若第n项小于第n-1项,将第n项与第n-1项交换
2、 若第n-1项小于第n-2项,将第n-1项与第n-2项交换
3、 …… 4、 若第3项小于第2项,将第3项与第2项交换
…… 第n-1次执行: 1、