gpt4 book ai didi

algorithm - 使用递归排序

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

我有以下函数来对无序数组进行排序,使其前面有偶数,后面有奇数。有没有一种方法可以不使用任何循环来完成它?

//front is 0, back =array.length-1;
arrangeArray (front, back);

public static void arrangeArray (int front, int back)
{
if (front != back || front<back)
{
while (numbers [front]%2 == 0)
front++;


while (numbers[back]%2!=0)
back--;


if (front < back)
{
int oddnum = numbers [front];
numbers[front]= numbers[back];
numbers[back]=oddnum;

arrangeArray (front+1, back-1);
}
}
}

最佳答案

Mergesort对于没有循环的代码来说是相当微不足道的:

void mergesort(int lo, int hi)
{
if (lo<hi)
{
int m=(lo+hi)/2;
mergesort(lo, m);
mergesort(m+1, hi);
merge(lo, m, hi);
}
}

我会把它的偶数/奇数排序作为练习留给读者:)

(听起来像作业)

关于algorithm - 使用递归排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2718079/

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