找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 32|回复: 0

插入排序算法

[复制链接]

351

主题

341

回帖

2433

积分

管理员

积分
2433
发表于 2025-6-17 21:58:32 | 显示全部楼层 |阅读模式
// Insertion Sort
(*
将第一待排序序列第一个元素看做一个有序序列,把第二个元素到最后一个元素当成是未排序序列;
从头到尾依次扫描未排序序列,将扫描到的每个元素插入有序序列的适当位置。
*)
#sort_temp := #Sort_IN;

FOR #i := 2 TO #LEN DO
    #key := #sort_temp[#i];
    #j := #i - 1;
    WHILE (#j >= 1) AND ((#Asc_Des AND #sort_temp[#j] > #key) OR (NOT #Asc_Des AND #sort_temp[#j] < #key)) DO
        // #sort_temp[#j] > #key,升序
        #sort_temp[#j + 1] := #sort_temp[#j];
        #j := #j - 1;
        IF #j = 0 THEN
            EXIT;
        END_IF;
    END_WHILE;
    #sort_temp[#j + 1] := #key;
END_FOR;

#Sort_OUT := #sort_temp;



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|笔记

GMT+8, 2025-7-7 16:17 , Processed in 0.048997 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表