Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/316.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_Algorithm_Sorting - Fatal编程技术网

Java 循环播种排序算法

Java 循环播种排序算法,java,algorithm,sorting,Java,Algorithm,Sorting,我想创建一个程序,在其中输入一个玩家列表,其中第一行是最好的玩家,最后一行是最差的玩家。然后它会做一个算法,把这些玩家分成技能相同的种子组 我希望这样做: 假设你有16名球员,你想要4组球员 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 现在,您要将它们分成四个相等的组: 1 8 9 16 2 7 10 15 3 6 11 14 4 5 12 13 因此,这份清单的最终结果将是: 1 8 9 16 2 7 10 15 3 6 11 14 4 5 12 13

我想创建一个程序,在其中输入一个玩家列表,其中第一行是最好的玩家,最后一行是最差的玩家。然后它会做一个算法,把这些玩家分成技能相同的种子组

我希望这样做:
假设你有16名球员,你想要4组球员

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
现在,您要将它们分成四个相等的组:

1 8  9 16
2 7 10 15
3 6 11 14
4 5 12 13
因此,这份清单的最终结果将是:

1 8 9 16 2 7 10 15 3 6 11 14 4 5 12 13
1 4 5 8  9 12 13 16
2 3 6 7 10 11 14 15
1 4 5 8 9 12 13 16 2 3 6 7 10 11 14 15
但如果你有同样的16名球员,但你只想要2组,那么它将是:

1 8 9 16 2 7 10 15 3 6 11 14 4 5 12 13
1 4 5 8  9 12 13 16
2 3 6 7 10 11 14 15
1 4 5 8 9 12 13 16 2 3 6 7 10 11 14 15
这将是:

1 8 9 16 2 7 10 15 3 6 11 14 4 5 12 13
1 4 5 8  9 12 13 16
2 3 6 7 10 11 14 15
1 4 5 8 9 12 13 16 2 3 6 7 10 11 14 15

有人能帮我找到一种算法吗?

听起来你想打印数字:

当使用num=2运行时,它会打印:

[1, 8, 9, 16, 2, 7, 10, 15, 3, 6, 11, 14, 4, 5, 12, 13]
[1, 4, 5, 8, 9, 12, 13, 16, 2, 3, 6, 7, 10, 11, 14, 15]

它在O(n)中运行,这是解决此问题所能得到的最佳结果。

否,他想对列表进行排序。当我尝试此解决方案时,输出为:[1, 8, 9, 16, 9, 16, 9, 16, 2, 9, 9, 16, 9, 16, 9, 16, 3, 10, 9, 16, 9, 16, 9, 16, 4, 11, 9, 16, 9, 16, 9, 16, 5, 12, 9, 16, 9, 16, 9, 16, 6, 13, 9, 16, 9, 16, 9, 16, 7, 14, 9, 16, 9, 16, 9, 16, 8, 15, 9, 16, 9, 16, 9, 16, 9, 16, 9, 16, 9, 16, 9, 16, 10, 17, 9, 16, 9, 16, 9, 16, 11, 18, 9, 16, 9, 16, 9, 16, 12, 19, 9, 16, 9, 16, 9, 16, 13, 20, 9, 16、9、16、9、16、14、21、9、16、9、9、16、15、22、9、16、9、16、23、9、16、9、16、16、16、16、14、21、9、16、9、16、9、16、9、16]噢,我的意思是按顺序遍历索引:diff=rowLength;I=0;如果I+rowLength ok,那么I=I+rowLength;如果I+1 ok,那么{I=I+1;diff=-diff};否则完成