用多线程实现归并排序
作者:聚变
- 2022 年 9 月 22 日 北京
本文字数:610 字
阅读完需:约 2 分钟
一道综合考察 java+算法的小题
import java.util.ArrayList;import java.util.Arrays;
public class StreamSort {
public static void main(String[] args) { final int[] ints = {6, 5, 4, 3, 2, 1}; final ArrayList<Integer> r = Arrays.stream(ints).boxed().map(v -> { ArrayList<Integer> result = new ArrayList<>(); result.add(v); return result; }).parallel().reduce((left, right) -> {
ArrayList<Integer> result = new ArrayList<>(); int i = 0, j = 0; while (i < left.size() && j < right.size()) { if (left.get(i) <= right.get(j)) { result.add(left.get(i++)); } else { result.add(right.get(j++)); } } while (i < left.size()) { result.add(left.get(i++)); } while (j < right.size()) { result.add(right.get(j++)); } System.out.println(Thread.currentThread().getName()+left+right); return result; }).get(); System.out.println(r);
}}
复制代码
涉及到的知识点:
parallelstream
reduce 方法参数
换个思路想想如何用 java 实现 shuffle?
划线
评论
复制
发布于: 刚刚阅读数: 3
版权声明: 本文为 InfoQ 作者【聚变】的原创文章。
原文链接:【http://xie.infoq.cn/article/0764bb84fc15f4c79eab806fa】。文章转载请联系作者。
聚变
关注
还未添加个人签名 2017.10.18 加入
还未添加个人简介










评论