首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java数组奇偶排序算法

Java数组奇偶排序算法
EN

Stack Overflow用户
提问于 2022-05-14 14:46:30
回答 1查看 28关注 0票数 0

我得到了一种算法来编写Arrey的设定顺序,但是以一种特定的方式。

  1. 在新数组开始时找到一个数组的最低数目
  2. 保存它。在原点(启动)数组点中找到最小的数组标记(例如,将其标记为最大int数)。
  3. 返回到点1。
  4. 重复all按升序重写所有数字。H 210G 211

因此,我得到了一个改变顺序的工作代码,但我不知道如何标记数字,因此创建了一个新的数组。

代码语言:javascript
复制
public static void arrOrder(int[] intArray){

        int temp = 0;

        for (int i = 0; i <intArray.length; i++) {
            for (int j = i+1; j <intArray.length; j++) {
                if(intArray[i] >intArray[j]) {
                    temp = intArray[i];
                    intArray[i] = intArray[j];
                    intArray[j] = temp;
                }
            }
        }
}
EN

回答 1

Stack Overflow用户

发布于 2022-05-14 14:56:11

,所以我得到了一个改变顺序的工作代码

不,你没有。即使你知道如何做标记的事情,你粘贴的代码可能会改变顺序,但它不会排序任何东西。

对于每个元素( i循环),您的代码将:

对于上面的每个元素,如果是更高的元素,就替换。这根本不是你想要的--你想要的是首先找出i-th数是否是最小的数字。如果没有,什么也不做(继续下一个数字,检查那个数字是否最低),如果是,将它写到中一个新的数组中,并用一些占位符替换它,以表明您已经做过了--建议是Integer.MAX_VALUE,这是一个很好的建议。

你所描述的“战略”包括:

将右size.

  • Maintaining的一个单独的新数组设置为一个变量,该变量可以计算在这个新数组中写入了多少个数字--当您找到下一个最低的数字时,就会将其写入该索引。
  1. 是一个双循环结构,内环没有写任何东西,它只是跟踪i数是否最低。
  2. i循环中有一些代码,但是在j循环之后,只有在< code >D20时才会起作用,实际上,它是最低的。假设包含一个布尔值,您最初设置的布尔值在内循环( j循环)中是透明的,然后是一个if,它只在布尔值保持为真时才起作用,也就是说--不存在较低的数字。
  3. j循环需要命中整个数组,而不是“只在你上面的东西”。
  4. 需要显式地排除您的前哨值。我建议你使用Integer.MAX_VALUE。这可能涉及到另一个if.

如果您的代码看起来与您粘贴的代码类似,那么您就没有正确地执行它,因为您粘贴的代码不会执行任何命名的策略元素。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72241280

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档