易语言直接插入排序

算法思想:

当插入第 i 个元素时,前面的 i-1 个元素已经有序。其实直接插入排序就是拿一个数,放到前面有序的数中就可以了。具体怎么放,不管是循环交换两个数的位置,还是先找到位置,再将该位置后面的数顺移.

511遇见

511遇见

直接插入排序模块

.版本 2
 
.子程序 直接插入排序
.参数 参数组, 整数型, 参考 数组
.局部变量 数组长度, 整数型, , , 数组的长度
.局部变量 无序区首, 整数型, , , 将无序区第一个结点插入到有序区中的位置
.局部变量 临时变量, 整数型, , , 暂时存放无序区第一个结点的数据
.局部变量 移动点, 整数型, , , 移动数据时的控制变量
.局部变量 插入点, 整数型
.局部变量 记次变量, 整数型
 
数组长度 = 取数组成员数 (参数组)
.如果真 (数组长度 ≤ 1)
    返回 ()
.如果真结束
.变量循环首 (2, 数组长度, 1, 无序区首)  ' 需要进行n-1次插入运算。
    .计次循环首 (无序区首 - 1, 插入点)  ' 在有序区中寻找插入位置。
        .如果真 (参数组 [无序区首] ≤ 参数组 [插入点])  ' 此为升序排序的插入条件。
            跳出循环 ()  ' 找到了插入位置。
        .如果真结束
    .计次循环尾 ()
    临时变量 = 参数组 [无序区首]
    .变量循环首 (无序区首, 插入点 + 1, -1, 移动点)  ' 插入运算
        参数组 [移动点] = 参数组 [移动点 - 1]
    .变量循环尾 ()
    参数组 [插入点] = 临时变量
.变量循环尾 ()

发布日期:

所属分类: 前端, 易语言 标签: