k路归并
2024-08-31 01:33:07
public static int[] k_merge(ArrayList<int[]> k_array) {
if(CollectionUtils.isEmpty(k_array)){
return new int[0];
}
int size = k_array.size();
int k = size;
ArrayList<int[]> objects = null;
while (k > 1) {
objects = Lists.newArrayList();
for (int i = 0; i < k; i += 2) {
if (i + 1 < k) {
int[] ints = m_merge(k_array.get(i), k_array.get(i + 1));
objects.add(ints);
} else {
objects.add(k_array.get(i));
}
}
k_array.clear();
for(int i=0;i<objects.size();i++){
k_array.add(objects.get(i));
}
k = k_array.size();
}
return objects.get(0);
} public static int[] m_merge(int[] a, int[] b) {
int a_length = a.length;
int b_length = b.length;
int[] result = new int[a_length + b_length];
int lpos = 0;
int rpos = 0; for (int i = 0; i < result.length; i++) {
if (lpos < a_length && rpos < b_length) {
if (a[lpos] <= b[rpos]) {
result[i] = a[lpos++];
} else {
result[i] = b[rpos++];
}
} else if (lpos < a_length) {
result[i] = a[lpos++];
} else if (rpos < b_length) {
result[i] = b[rpos++];
}
}
return result;
}
最新文章
- js中的prototype和__proto__
- html 上传预览图片
- Linux搭建Scrapy爬虫集成开发环境
- Python - Tips
- iOS 学习 - 10下载(3) NSURLSession 音乐 篇
- Mac按键
- ZipArchive和SSZipArchive使用详解
- Orchard常见问题
- secureCRT使用VIM时对语法高亮
- Thinkphp分页时查询条件保存方法
- cocos2d-x游戏开发系列教程-超级玛丽07-CMGameMap(四)-马里奥平移
- VC2010编写Dll文件(转)
- http接口加密《一》:移动应用中,通过在客户端对访问的url进行加密处理来保护服务器上的数据
- Cocos2D v2.0至v3.x简洁转换指南(二)
- 安卓4.0以上系统怎么不用root激活XPOSED框架的方法
- unique_ptr
- PIGS POJ - 1149(水最大流)
- Solidity合约:玉米生产溯源
- XRP节点部署
- 用django框架开发一个B2C购物网站的基本流程和用到的知识点总结1