易语言选择排序算法步骤和模块

选择排序是一种简单直观的排序算法
选择法排序指每次选择所要排序的数组中的最大值(由大到小排序,由小到大排序则选择最小值)的数组成员,将这个数组成员的值与最前面没有进行排序的数组成员的值互换。
在实例中,Temp变量用于存储数值最小的数值,Pos变量用于存储成员位置,然后通过双层循环对A数组进行选择法排序,最后将排序好的数组进行输出。代码如下
代码解析:设置一个嵌套循环,第一层循环为前9个数组成员,并在每次循环时将对应当前次数的数组成员设置为最小值;在第二层循环中,循环比较该成员之后的各个数组成员,并将每次比较的结果中较小的数设置为最小值,在第二层循环结束时,将最小值与开始时设置为最小值的数组成员进行互换。当所有循环都完成以后,就将数组成员按照从小到大的顺序重新排列了。

算法步骤

1、首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置。
2、再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。
3、重复第二步,直到所有元素均排序完毕。

易语言选择排序算法步骤和模块 配图1

选择排序演示

.版本 2
.支持库 spec
.局部变量 A, 整数型, , "10"
.局部变量 I, 整数型
.局部变量 K, 整数型
.局部变量 Temp, 整数型
.局部变量 Pos, 整数型
 
A = { 68, 43, 31, 15, 67, 99, 76, 43, 19, 26 }
.计次循环首 (9, I)
    Temp = A [I]  ' 设置当前成员为最小值
    Pos = I  ' 记录成员位置
    .变量循环首 (I + 1, 10, 1, K)
        .如果真 (A [K] < Temp)  ' 如果当前成员比最小值还小
            Temp = A [K]  ' 重新设置最小值
            Pos = K  ' 记录成员位置
        .如果真结束
    .变量循环尾 ()
    ' 交换两个成员的值
    A [Pos] = A [I]
    A [I] = Temp
.计次循环尾 ()
调试输出 (A)

选择排序模块

.版本 2
 
.子程序 选择排序
.参数 参数组, 整数型, 数组
.局部变量 数量, 整数型
.局部变量 临时, 整数型
.局部变量 位置变量, 整数型
.局部变量 未比变量, 整数型
.局部变量 放置变量, 整数型
 
数量 = 取数组成员数 (参数组)
.如果真 (数量 ≤ 0)
    返回 ()
.如果真结束
.变量循环首 (1, 数量 - 1, 1, 位置变量)
    放置变量 = 位置变量
    .变量循环首 (位置变量 + 1, 数量, 1, 未比变量)
        .如果真 (参数组 [放置变量] > 参数组 [未比变量])  ' // 寻找最大的数
            放置变量 = 未比变量
        .如果真结束
 
    .变量循环尾 ()
    临时 = 参数组 [放置变量]
    参数组 [放置变量] = 参数组 [位置变量]
    参数组 [位置变量] = 临时
.变量循环尾 ()

分享到:

用微信扫一扫,分享给朋友


发布日期:

所属分类: 编程