写点什么

用多线程实现归并排序

作者:聚变
  • 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);
}}
复制代码


涉及到的知识点:

  1. parallelstream

  2. reduce 方法参数


换个思路想想如何用 java 实现 shuffle?

发布于: 刚刚阅读数: 3
用户头像

聚变

关注

还未添加个人签名 2017.10.18 加入

还未添加个人简介

评论

发布
暂无评论
用多线程实现归并排序_归并排序_聚变_InfoQ写作社区