|

分享源码
界面截图: |
|
是否带模块: |
调用了模块 |
备注说明: |
- |
https://www.bilibili.com/video/BV1944y1E7as/?vd_source=95702c8745c5d28582eab4405ef02eef
介绍了一个 算法 , 插入和归并混合排序的
f阀值 32. 小于32的成员用插入,然后两两合并起来归并排序
然后我写了主框架。
让豆包把插入排序,和归并排序的部分,补上
插入排序写的十分完美。然后让它改成更快的二分插入排序 也改出来了
|
子程序_插入排序3 | | | |
参数_数组 | 整数型 | | | | 参数_左 | 整数型 | | | | 参数_右 | 整数型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | n1 | 整数型 | | | 局变_临时 | 整数型 | | | m1 | 整数型 | | | 局变_插入点 | 整数型 | | |
如果 (参数_左 ≥ 参数_右 ) 返回 ()  调试输出 (子程序_输出指定数组成员 (参数_数组, 参数_左, 参数_右 )) 变量循环首 (参数_左 + 1, 参数_右, 1, n1 ) 局变_临时 = 参数_数组 [n1 ]  局变_插入点 = -1  变量循环首 (n1 - 1, 参数_左, -1, m1 )  如果 (参数_数组 [m1 ] > 局变_临时 )   参数_数组 [m1 + 1 ] = 参数_数组 [m1 ]    局变_插入点 = m1 + 1   跳出循环 ()    变量循环尾 ()  如果 (局变_插入点 = -1 )  局变_插入点 = 参数_左        参数_数组 [局变_插入点 ] = 局变_临时 变量循环尾 ()调试输出 (子程序_输出指定数组成员 (参数_数组, 参数_左, 参数_右 ))
豆包可以啊,插入排序的改版也能轻松实现 我想半天
直接输入残缺代码 他就补上了
它搞不清循环判断 和判断循环。有时候忘记循环判断尾()里加 真
然后让他补上 归并排序的代码。也整挺好,除了一点拷贝到IDE的错乱外,也能跑了
提示修改一些bug后,连主框架都改成看不懂的样子‘但是结果是没问题的
本来非常费脑子的事情 AI给解决了
用是没问题的,就是要理解代码和修改BUG就很难了
然后看看完整代码
窗口程序集名 | 保 留 | 保 留 | 备 注 | 窗口程序集_启动窗口 | | | | 变量名 | 类 型 | 数组 | 备 注 | 程变_临时 | 整数型 | 0 |
变量名 | 类 型 | 静态 | 数组 | 备 注 | aaa | 整数型 | | 0 | bbb | 整数型 | | 0 | 调试模块_创建整数型数组_有重复 (aaa, 10000000, 1, 100000 )bbb = aaa 计时器启动 ()子程序_新排序 (aaa )计时器结束 ()计时器启动 ()排序模块_归并排序 (bbb )计时器结束 () 调试输出 (调试模块_检查数组是否排序过 (aaa, 真)) 调试输出 (调试模块_检查数组是否排序过 (bbb, 真)) 结束 () 变量名 | 类 型 | 静态 | 数组 | 备 注 | 局变_阀值 | 整数型 | | | 局变_数组个数 | 整数型 | | | 局变_间隔 | 整数型 | | | 局变_左 | 整数型 | | | 局变_右 | 整数型 | | | 局变_游标x首 | 整数型 | | | 局变_游标x尾 | 整数型 | | | 局变_游标y首 | 整数型 | | | 局变_游标y尾 | 整数型 | | |
局变_阀值 = 32 局变_数组个数 = 取数组成员数 (参数_数组 ) 如果 (局变_数组个数 ≤ 1 ) 返回 ()  如果 (局变_数组个数 < 局变_阀值 ) 子程序_二分插入排序3 (参数_数组, 1, 局变_数组个数 ) 返回 ()  重定义数组 (程变_临时, 假, 局变_数组个数 ) 局变_左 = 1 局变_间隔 = 局变_阀值 循环判断首 ()  局变_右 = 局变_左 + 局变_间隔 - 1  如果 (局变_右 > 局变_数组个数 )  局变_右 = 局变_数组个数        如果 (局变_左 > 局变_右 ) 跳出循环 ()      子程序_二分插入排序3 (参数_数组, 局变_左, 局变_右 )  局变_左 = 局变_右 + 1  如果 (局变_左 > 局变_数组个数 ) 跳出循环 ()      循环判断尾 (真) 局变_间隔 = 局变_阀值 循环判断首 () 局变_游标x首 = 1  循环判断首 ()   局变_游标x尾 = 局变_游标x首 + 局变_间隔 - 1   如果 (局变_游标x尾 > 局变_数组个数 )   局变_游标x尾 = 局变_数组个数             局变_游标y首 = 局变_游标x尾 + 1    如果 (局变_游标y首 > 局变_数组个数 )  跳出循环 ()            局变_游标y尾 = 局变_游标y首 + 局变_间隔 - 1   如果 (局变_游标y尾 > 局变_数组个数 )   局变_游标y尾 = 局变_数组个数            子程序_归并排序_正常 (参数_数组, 局变_游标x首, 局变_游标x尾, 局变_游标y首, 局变_游标y尾 )   局变_游标x首 = 局变_游标y尾 + 1    如果 (局变_游标x首 > 局变_数组个数 )  跳出循环 ()          循环判断尾 (真)  局变_间隔 = 局变_间隔 × 2  如果 (局变_间隔 > 局变_数组个数 ) 跳出循环 ()      循环判断尾 (真)|
子程序_二分插入排序3 | | | |
参数_数组 | 整数型 | | | | 参数_左 | 整数型 | | | | 参数_右 | 整数型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | n1 | 整数型 | | | 局变_临时 | 整数型 | | | 局变_左 | 整数型 | | | 局变_右 | 整数型 | | | 局变_中间 | 整数型 | | | m1 | 整数型 | | | 如果 (参数_左 ≥ 参数_右 ) 返回 ()  变量循环首 (参数_左 + 1, 参数_右, 1, n1 ) 局变_临时 = 参数_数组 [n1 ]  局变_左 = 参数_左  局变_右 = n1 - 1  判断循环首 (局变_左 ≤ 局变_右 )  局变_中间 = 局变_左 (局变_右 - 局变_左 ) ÷ 2   如果 (参数_数组 [局变_中间 ] > 局变_临时 )   局变_右 = 局变_中间 - 1    局变_左 = 局变_中间 + 1     判断循环尾 ()  变量循环首 (n1 - 1, 局变_左, -1, m1 )  参数_数组 [m1 + 1 ] = 参数_数组 [m1 ] 变量循环尾 ()  参数_数组 [局变_左 ] = 局变_临时 变量循环尾 ()|
子程序_归并排序_正常 | | | |
参数_数组 | 整数型 | | | | 参数_游标x首 | 整数型 | | | | 参数_游标x尾 | 整数型 | | | | 参数_游标y首 | 整数型 | | | | 参数_游标y尾 | 整数型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | 局变_i | 整数型 | | | 局变_j | 整数型 | | | 局变_k | 整数型 | | | 如果 (参数_游标x首 > 参数_游标x尾 或 参数_游标y首 > 参数_游标y尾 ) 返回 ()  变量循环首 (参数_游标x首, 参数_游标y尾, 1, 局变_i ) 程变_临时 [局变_i ] = 参数_数组 [局变_i ] 变量循环尾 () 局变_i = 参数_游标x首 局变_j = 参数_游标y首 局变_k = 参数_游标x首 循环判断首 ()  如果 (局变_i > 参数_游标x尾 )  变量循环首 (局变_j, 参数_游标y尾, 1, 局变_j )   参数_数组 [局变_k ] = 程变_临时 [局变_j ]   局变_k = 局变_k + 1   变量循环尾 () 跳出循环 ()       如果 (局变_j > 参数_游标y尾 )  变量循环首 (局变_i, 参数_游标x尾, 1, 局变_i )   参数_数组 [局变_k ] = 程变_临时 [局变_i ]   局变_k = 局变_k + 1   变量循环尾 () 跳出循环 ()       如果 (程变_临时 [局变_i ] ≤ 程变_临时 [局变_j ])  参数_数组 [局变_k ] = 程变_临时 [局变_i ]  局变_i = 局变_i + 1   参数_数组 [局变_k ] = 程变_临时 [局变_j ]  局变_j = 局变_j + 1 局变_k = 局变_k + 1 循环判断尾 (真)
|
|