【发布时间】:2017-06-22 16:03:32
【问题描述】:
我如何将数组排序为偶数和奇数之间的数字出现顺序相同,例如 [2 1 4 6 3 9 8] 使用递归来提供此 [1 3 9 2 4 6 8]?非常感谢一些使用 Java 的帮助或示例。
这段代码做了类似的工作,只是很难解决手头的问题。
Sorting an array recursively in Java with even numbers appearing in front of array.
这是关于如何处理并排的偶数问题的部分。不得使用循环。
public static int[] SplitOdds(int input[], int left, int next){
int[] temp = new int[1];
int[] temp2 = new int[1];
if (input.length == 1)
{return input;}
if (input.length ==2){
temp[0] = input[left];
input[left] = input[next];
input[next] = temp[0];
return input;}
if (input[left]%2!=0 && input[next]%2==0)
{return SplitOdds(input, left+1, next+1);}
if(input[left]%2==0 && input[next]%2!=0){
temp[0] = input[left];
input[left] = input[next];
input[next] = temp[0];
return SplitOdds(input, left+1, next+1);}
if(input[left]%2!=0&&input[next]%2!=0)
return SplitOdds(input, left+1, next+1);
if(input[left]%2==0&&input[next]%2==0){
int j = next;
temp[0]=input[left];
return SplitOdds(input, left, next+1);}
else if(input[next]%2!=0){
//temp2[0]=input[j];
//input[left]=input[next];
input[left+1] = temp2[0];
return SplitOdds(input, left, next+1);}
else if(next == input.length)
{left = 1;
next = 2;}
return input;
}
【问题讨论】:
-
向我们展示你的努力。
-
欢迎来到 StackOverflow。请阅读并遵循帮助文档中的发布指南。 on topic 和 how to ask 在这里申请。 StackOverflow 不是设计、编码、研究或教程服务。
-
"Can Someone Help Me?" is not a valid SO question。这通常表明您需要的是与当地导师一起半小时或完成教程,而不是 Stack Overflow。
标签: java arrays sorting recursion