Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用预定义函数进行排序_Java_Sorting - Fatal编程技术网

Java 使用预定义函数进行排序

Java 使用预定义函数进行排序,java,sorting,Java,Sorting,我有一个排序问题。我有一个函数,比如说简化黑盒。 作为输入,它接受两个作业(任务),作为输出,它返回第一个要处理的作业。例如: input(1,2) --> output: Job 2 is first. 问题是,这个黑盒子有时会做出错误的决定。 示例:假设我们有3个作业:0、1和2。我们对每个作业进行测试,以确定处理顺序 input(0,1) --> output: Job 0 is first input(1,2) --> output: Job 1 is first i

我有一个排序问题。我有一个函数,比如说简化黑盒。 作为输入,它接受两个作业(任务),作为输出,它返回第一个要处理的作业。例如:

input(1,2) --> output: Job 2 is first.
问题是,这个黑盒子有时会做出错误的决定。 示例:假设我们有3个作业:0、1和2。我们对每个作业进行测试,以确定处理顺序

input(0,1) --> output: Job 0 is first
input(1,2) --> output: Job 1 is first
input(0,2) --> output: Job 2 is first (bad decision)
问题是,通常使用两次输入,作业0必须在2之前处理。但是,胡言乱语的人却不这么说。 考虑到这个问题,我想使用这个黑盒排序来处理一组作业。
那么,如何对作业集进行排序呢?

很容易确定存在的问题。你需要建立直接的决策图。如果它包含循环,那么你在某个地方就有一个错误的决定

但不可能找出哪个决定是错误的。周期中的任何决策都可能是糟糕的(甚至是几个)

编辑

您可以删除图形的一些边以打破循环(您可以选择任何您喜欢的方式)。在此之后,您的任务将部分有序(或者完全有序,我需要考虑一下)

编辑2


下面是一篇wiki文章,它可能会帮助您

该接口用于编写您自己的排序实现,而这些实现不属于正在排序的类。它主要用于。如果黑匣子不能正常工作,为什么要使用黑匣子?实现自己的逻辑(在
比较器
中)做正确的事情,而不是黑匣子不能正常工作。定义错误的决策,是代码可以识别的吗?为什么你认为选择3是错误的决策?现在我明白了。您的初始版本输入错误。为什么你认为最后的决定是错误的?他们中的任何一个都可能是错的。我确实理解你的观点。但是可能会遇到一个糟糕的决定,问题是如何将这个决定考虑在内。还是我要纠正这个决定,然后返回排序?@Zahzah问题是,如果没有定义良好的排序,排序就没有意义,因为最终状态是任意的。