d的动态链
void main()
{
int[] arr1 = [4, 9, 7];
int[] arr2 = [5, 2, 1, 10];
int[] arr3 = [6, 8, 3];
sort(chain(arr1, arr2, arr3));
//排序链.
writefln("%s\n%s\n%s\n", arr1, arr2, arr3);
}
已如此:
int[] arr = [4, 9, 7, 5, 2, 1, 10, 6, 8, 3];
int[] arr1 = arr[0..3];
int[] arr2 = arr[3..7];
int[] arr3 = arr[7..$];
sort(chain(arr1, arr2, arr3));
writefln("%s\n%s\n%s\n", arr1, arr2, arr3);
typeid(arr).writeln(": ", arr);
writeln(&arr[0], " == ", &arr1[0]);
/* Print Out:
[1, 2, 3]
[4, 5, 6, 7]
[8, 9, 10]
int[]: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
7F7FBE348000 == 7F7FBE348000
*/
chain
允许不同类型区间
.
joiner
应该等价于相同类型区间
的动态区间
.
sort(joiner([arr1,arr2,arr3]))
应可工作,但它不是随机访问区间
.很可能是因为大O
不再是常数
.
我得到,不满足isRandomAccessRange!Range
约束.
合并排序
仅在易于操作结构
(如链表
)或构建(例如每次迭代
新数组时,不关心
分配的)结构时才有效
.
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现