gpt4 book ai didi

java - Java 合并归并排序

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:53:19 25 4
gpt4 key购买 nike

我必须用 Java 编写合并排序函数。没问题。好吧,有一点,但我挺过来了。然后是我没有得到的后续问题。

问题:给定一个数组 A[][]这样 A[i][0]floatA[i][1]是一个非负数 int给出值的多重性 A[i][0] (这里想想一个大 vector ,它通过组合重复的条目并记录有多少被组合而被折叠),编写一个返回 B[][] 的合并排序版本。其中 B[i][0] < B[i+1][0]对于所有 i .

有什么想法吗?我能做的最好的事情是合并排序,然后对相等的进行分组,但显然您可以一步完成所有操作。

最佳答案

Strage 问题...并且在这些数组中使用不同的类型只是丑陋的(个人观点)

然而,最有用的做法是用 Comparator 重写合并函数.这样您就可以使用您想要的任何属性进行排序。你最终会得到一个类似 void merge(A[] arr, Comparator<? super A> comp) 的签名.顺便说一下,sort 的 Java 实现很像这样。

要解决您的问题,您可以调用:

A[][] a = ...;
merge(a, new Comparator<A[]>() {
int compare(A[] a, A[] b) {
return ((Float)a[0]) - ((Float)b[0]);
}
});

关于java - Java 合并归并排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7856463/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com