一维数组 排序 一、 选择排序法: 数据已经放在一维数组中,要求从小到大排序。 数组 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、 若第n项小于第n-1项,将第n项与第n-1项交换。 所以,需要两层循环:外层循环 i执行n-1次,内层循环 j执行n-i次 For i=1 to n-1 For j=n to i+1 step -1 若第j项值<第j-1项值,则: tmp=第j-1项值 第j-1项值=第j项 第j项值= tmp next Next 大数下沉排序过程:从第1项到第k项,依次相临两项比较,若第m项大于第m+1项,则两项交换。(k从n-1到1) For i=n to 2 step -1 For j=1 to i-1 若第j项值>第j+1项值,则: tmp=第j+1项值 第j+1项值=第j项 第j项值= tmp next Next 从大到小呢? 查找 一、 顺序查找法: 数据已经放在数组中 数组 20 4 36 …… 45 109 3 下标 1 2 3 …… n-2 n-1 n 查找方法:...