开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 1963|回复: 58
收起左侧

[易语言纯源码] 快速排序、不用精币直接发源码!

[复制链接]
发表于 2025-10-14 16:07:51 | 显示全部楼层 |阅读模式   辽宁省葫芦岛市
分享源码
界面截图:
是否带模块: 纯源码
备注说明: -
本帖最后由 莫小乐 于 2025-10-14 16:32 编辑

直奔主题!
  
窗口程序集名保 留  保 留备 注
窗口程序集_启动窗口   
变量名类 型数组备 注
正序逻辑型  

子程序名返回值类型公开备 注
__启动窗口_创建完毕  

子程序名返回值类型公开备 注
快速排序 快速排序入口:按“是正序”变量控制方向
参数名类 型参考可空数组备 注
数据数组整数型, 待排序的数组
索引数组整数型, 同步排序的索引数组(与数据一一对应)
如果真 (取数组成员数 (数据数组) = 0)  ' 空数组直接返回
返回 ()
' 调用内部排序,数组下标从1开始(易语言默认)
快速排序_内部 (数据数组, 索引数组, 1, 取数组成员数 (数据数组))
子程序名返回值类型公开备 注
快速排序_内部 递归实现快速排序
参数名类 型参考可空数组备 注
数据整数型
索引整数型
左边界整数型排序起始下标(1-based)
右边界整数型排序结束下标(1-based)
变量名类 型静态数组备 注
基准位置整数型 
如果真 (左边界 ≥ 右边界)  ' 递归终止条件:子数组长度≤1
返回 ()

' 划分数组,返回基准值位置(左侧均符合条件,右侧相反)
基准位置 = 划分数组 (数据, 索引, 左边界, 右边界)
' 递归排序基准值左侧子数组
快速排序_内部 (数据, 索引, 左边界, 基准位置 - 1)
' 递归排序基准值右侧子数组
快速排序_内部 (数据, 索引, 基准位置 + 1, 右边界)
子程序名返回值类型公开备 注
划分数组整数型 将数组划分为两部分,返回基准值位置
参数名类 型参考可空数组备 注
数据整数型
索引整数型
整数型
整数型
变量名类 型静态数组备 注
基准值整数型 
i整数型 
j整数型 
临时整数型 
基准值 = 数据 []  ' 以最右侧元素为基准
i = 左 - 1  ' 左区域初始为空(指针在左边界左侧)
' 遍历左到右-1的所有元素
计次循环首 (右 - 左, j)
j = 左 + j - 1  ' 计算实际遍历位置(左 → 右-1)
' 根据“是正序”判断是否放入左区域
判断 (正序 = )  ' 升序:左区域放“≤基准值”的元素
如果 (数据 [j] ≤ 基准值)
i = i + 1  ' 左区域扩大
交换元素 (数据, 索引, i, j)  ' 当前元素放入左区域



如果 (数据 [j] ≥ 基准值)
i = i + 1  ' 左区域扩大
交换元素 (数据, 索引, i, j)  ' 当前元素放入左区域




计次循环尾 ()
' 将基准值放到最终位置(左区域末尾+1)
i = i + 1
交换元素 (数据, 索引, i, 右)
返回 (i)  ' 返回基准值位置
子程序名返回值类型公开备 注
交换元素 交换两个位置的元素及对应索引
参数名类 型参考可空数组备 注
数据整数型
索引整数型
位置A整数型第一个位置
位置B整数型第二个位置
变量名类 型静态数组备 注
临时整数型 
' 交换数据元素
临时 = 数据 [位置A]
数据 [位置A] = 数据 [位置B]
数据 [位置B] = 临时
' 同步交换索引(保持关联关系)
临时 = 索引 [位置A]
索引 [位置A] = 索引 [位置B]
索引 [位置B] = 临时
子程序名返回值类型公开备 注
_按钮_升序_被单击 测试升序排序(从小到大)
变量名类 型静态数组备 注
测试数据整数型5
测试索引整数型5
k整数型 
' 初始化数据:{5,6,1,2,3}
测试数据 = { 5, 6, 1, 2, 3 }
计次循环首 (5, k)
测试索引 [k] = k  ' 索引初始为1-5(对应原数据位置)
计次循环尾 ()
正序 =   ' 设为升序
快速排序 (测试数据, 测试索引)
调试输出 (“升序结果(从小到大):”, 测试数据)  ' 预期:{1,2,3,5,6}
调试输出 (“升序同步索引:”, 测试索引)
子程序名返回值类型公开备 注
_按钮_降序_被单击 测试降序排序(从大到小)
变量名类 型静态数组备 注
测试数据整数型5
测试索引整数型5
k整数型 
' 初始化数据:{5,6,1,2,3}
测试数据 = { 5, 6, 1, 2, 3 }
计次循环首 (5, k)
测试索引 [k] = k  ' 索引初始为1-5
计次循环尾 ()
正序 =   ' 设为降序
快速排序 (测试数据, 测试索引)
调试输出 (“降序结果(从大到小):”, 测试数据)  ' 预期:{6,5,3,2,1}
调试输出 (“降序同步索引:”, 测试索引)


i支持库列表   支持库注释   
spec特殊功能支持库


再不会复制粘贴那还是下载吧(和上面代码一模一样!可以不下) 快速排序.e (7.47 KB, 下载次数: 60)

评分

参与人数 2好评 +1 精币 +7 收起 理由
xmtian + 1 + 2 支持开源~!感谢分享
一C + 5 YYDS~!

查看全部评分


签到天数: 15 天

发表于 2025-12-2 19:19:15 | 显示全部楼层   广东省清远市
66666666666666666666
回复 支持 反对

使用道具 举报

签到天数: 25 天

发表于 2025-11-15 11:32:14 高大上手机用户 | 显示全部楼层   广东省深圳市
支持支持支持
回复 支持 反对

使用道具 举报

发表于 2025-10-27 16:12:04 | 显示全部楼层   广东省深圳市
感谢分享
回复 支持 反对

使用道具 举报

发表于 2025-10-26 21:37:26 | 显示全部楼层   **
额来看看
回复 支持 反对

使用道具 举报

结帖率:91% (49/54)

签到天数: 11 天

发表于 2025-10-24 15:06:53 | 显示全部楼层   湖北省荆州市
        支持开源~!感谢分享
回复 支持 反对

使用道具 举报

签到天数: 4 天

发表于 2025-10-23 22:58:15 | 显示全部楼层   福建省宁德市
        支持开源~!感谢分享
回复 支持 反对

使用道具 举报

结帖率:0% (0/1)

签到天数: 3 天

发表于 2025-10-22 09:01:06 | 显示全部楼层   江西省南昌市
支持开源~!感谢分享
回复 支持 反对

使用道具 举报

结帖率:100% (16/16)

签到天数: 8 天

发表于 2025-10-20 12:40:59 | 显示全部楼层   福建省三明市

感谢分享,支持开源!!!
回复 支持 反对

使用道具 举报

结帖率:100% (5/5)

签到天数: 2 天

发表于 2025-10-20 09:38:04 | 显示全部楼层   河北省邢台市
谢谢分享
回复 支持 反对

使用道具 举报

签到天数: 12 天

发表于 2025-10-18 09:39:38 | 显示全部楼层   浙江省宁波市
感谢分享,支持开源!!!
回复 支持 反对

使用道具 举报

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

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报QQ: 793400750,邮箱:wp@125.la
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备2025452707号) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

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