Tho*_*olf 0 java arrays sorting recursion loops
我有一个排序问题.
假设我有4个字符串存储在数组中,其中我想要成对生成所有组合.并且从这些对中对它们进行排序,使得没有2个阵列位置在最大可能的范围内彼此相继
例:
String[] array = {"one", "two", "three", "four"};
// want to generate
one - two
one - three
one - four
two - three
two - four
three - four
// then sort
one - two
three - four
one - four
two - three //two "three" after each other
one - three
two - four
Run Code Online (Sandbox Code Playgroud)
(在这种情况下相互得到2的那个"three"在排序时也是随机的)
我不知道如何用Java做到这一点.尝试嵌套for循环,有些人告诉我递归循环.我不想要:
" 只需复制粘贴此代码,一切都会正常工作 "我真的很想了解如何写这样的东西.
我该如何处理这个问题?
这是你的不是Just copy paste this code and everything will work: -
第1步: - 将temp变量初始化为
0.第2步: -从遍历您的阵列
0来arr.length - temp第3步: - 打印
arr[i][temp] - arr[i][i + temp]第4步: -增量
temp由1步骤5: - 重复
step 2如果temp < arr.length - 1,因为(i + temp)不能超过arr.length.
因此,对于给定的数组,它将打印: -
String arr[] = {"one", "two", "three", "four"};
Run Code Online (Sandbox Code Playgroud)
第一次迭代(差异为1的索引对): -
1. arr[0][0] - arr[0][1], then ("one" - "two")
2. arr[0][1] - arr[0][2], ("two" - "three")
.. so on,
Run Code Online (Sandbox Code Playgroud)
然后转到下一个迭代.增加温度1: -
第二次迭代(差异为2的索引对): -
1. arr[0][0] - arr[0][2], then ("one" - "three")
2. arr[0][1] - arr[0][3] ("two" - "four")
Run Code Online (Sandbox Code Playgroud)
......等等.
最后一次迭代(有差异的指数对arr.length - 1): -
1. max = arr.length - 1;
2. arr[0][0] - arr[0][max] ("one" - "four")
Run Code Online (Sandbox Code Playgroud)
所以,你可以看到,这里没有任何内容sorting.如果你尝试通过排序来做这件事,那将是很复杂的.