【发布时间】:2020-10-17 22:12:56
【问题描述】:
在这里,我尝试重新排序 int 元素数组,如下所示:2 4 6 8 1 3 5 7 9。
我尝试了下面的代码,但它不起作用。它打印它们与 1 2 3 4 5 6 7 8 9 相同。 我需要帮助来理解将这个数组重新排序为左边的偶数和右边的赔率的过程。
static void Orgnaize(int[] data) {
/* Initialize left and right indexes */
int left = 0, right = data.length - 1;
for(int i =0;left < right; i++)
{
/* Increment left index while we see 0 at left */
for(int j =0; data[left]%2 == 0 && left < right; j++)
left++;
/* Decrement right index while we see 1 at right */
for (int k =0;data[right]%2 == 1 && left < right;k--)
right--;
if (data[left] %1 ==0)
{
/* Swap arr[left] and arr[right]*/
int temp = data[left];
data[left] = data[right];
data[right] = temp;
left++;
right--;
Orgnaize(data);
}
}
}
我做错了什么?
【问题讨论】:
-
你可以试试这个吗,geeksforgeeks.org/…
-
使所有偶数为负数并对它们进行排序。再次让一切变得积极。
-
这行不通兄弟,那样的话,8 6 4 2 1 3 5 7 9。
标签: java arrays algorithm sorting data-structures