【文件属性】:
文件名称:leetcode二维数组-23:合并k个排序列表-https://leetcode.com/problems/merge-k-sorted-l
文件大小:2KB
文件格式:ZIP
更新时间:2021-07-07 03:26:45
系统开源
leetcode二维数组合并
k
个排序列表
#23
什么是分而治之的算法?
问题是什么?
看问题。
运行时和空间复杂度
mergeKLists()的运行时间为0(n*m)因为它需要一个大小为n的嵌套
for
循环,其中n是行数,
m是列数。
这个嵌套的
for
循环是将
2D
数组展平为一维数组。
mergeSort()用于对扁平数组进行排序。
归并排序的平均运行时间是0(n
log
n)
。
这是因为数组被递归地分成两半,直到它不能再被分割,即到达单个元素。
当数组被“重建”或元素merge()
,它们也会被递归地比较和组合。
空间复杂度通常是未排序的二维数组中元素的数量。
但是我的实现使用临时数组作为占位符。
因此,此实现的空间复杂度是未排序二维数组中元素总数的两倍。
【文件预览】:
23-master
----KLists.java(4KB)
----.gitignore(278B)
----README.md(1KB)