本帖最后由 莫小乐 于 2025-10-14 16:32 编辑
直奔主题!
| 窗口程序集名 | 保 留 | 保 留 | 备 注 | | 窗口程序集_启动窗口 | | | | | 变量名 | 类 型 | 数组 | 备 注 | | 正序 | 逻辑型 | |
如果真 (取数组成员数 (数据数组 ) = 0 ) 返回 () 快速排序_内部 (数据数组, 索引数组, 1, 取数组成员数 (数据数组 )) |
| 快速排序_内部 | | | |
| 数据 | 整数型 | | | | 索引 | 整数型 | | | | 左边界 | 整数型 | | | | 右边界 | 整数型 | | | |
如果真 (左边界 ≥ 右边界 ) 返回 () 基准位置 = 划分数组 (数据, 索引, 左边界, 右边界 ) 快速排序_内部 (数据, 索引, 左边界, 基准位置 - 1 ) 快速排序_内部 (数据, 索引, 基准位置 + 1, 右边界 )|
| 划分数组 | 整数型 | | |
| 数据 | 整数型 | | | | 索引 | 整数型 | | | | 左 | 整数型 | | | | 右 | 整数型 | | | |
| 变量名 | 类 型 | 静态 | 数组 | 备 注 | | 基准值 | 整数型 | | | | i | 整数型 | | | | j | 整数型 | | | | 临时 | 整数型 | | |
基准值 = 数据 [右 ] i = 左 - 1 计次循环首 (右 - 左, j ) j = 左 + j - 1  判断 (正序 = 真)   如果 (数据 [j ] ≤ 基准值 )   i = i + 1   交换元素 (数据, 索引, i, j )            如果 (数据 [j ] ≥ 基准值 )   i = i + 1   交换元素 (数据, 索引, i, j )            计次循环尾 () i = i + 1 交换元素 (数据, 索引, i, 右 )返回 (i ) |
| 交换元素 | | | |
| 数据 | 整数型 | | | | 索引 | 整数型 | | | | 位置A | 整数型 | | | | 位置B | 整数型 | | | |
临时 = 数据 [位置A ]数据 [位置A ] = 数据 [位置B ]数据 [位置B ] = 临时 临时 = 索引 [位置A ]索引 [位置A ] = 索引 [位置B ]索引 [位置B ] = 临时 | 变量名 | 类 型 | 静态 | 数组 | 备 注 | | 测试数据 | 整数型 | | 5 | | 测试索引 | 整数型 | | 5 | | k | 整数型 | | |
测试数据 = { 5, 6, 1, 2, 3 } 计次循环首 (5, k ) 测试索引 [k ] = k 计次循环尾 ()正序 = 真 快速排序 (测试数据, 测试索引 )调试输出 (“升序结果(从小到大):”, 测试数据 ) 调试输出 (“升序同步索引:”, 测试索引 )| 变量名 | 类 型 | 静态 | 数组 | 备 注 | | 测试数据 | 整数型 | | 5 | | 测试索引 | 整数型 | | 5 | | k | 整数型 | | |
测试数据 = { 5, 6, 1, 2, 3 } 计次循环首 (5, k ) 测试索引 [k ] = k 计次循环尾 ()正序 = 假 快速排序 (测试数据, 测试索引 )调试输出 (“降序结果(从大到小):”, 测试数据 ) 调试输出 (“降序同步索引:”, 测试索引 )
再不会复制粘贴那还是下载吧(和上面代码一模一样!可以不下)
快速排序.e
(7.47 KB, 下载次数: 60)
|