当前位置: 首页 > 知识库问答 >
问题:

Java数组奇数排序算法

秦渝
2023-03-14

我得到了一个算法,可以用一种特定的方式写出欠费的顺序。

  1. 找到数组的最低数
  2. 将其保存在新数组的开头。
  3. 标记在我们找到最低数字的起源(起始)数组点(例如将其标记为最大int数字)。
  4. 回到第1点。
  5. 重复all以按升序重写所有数字。

所以我得到了一个可以改变顺序的工作代码,但我不知道如何标记数字,多亏了这一点,我创建了一个新的数组。

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;
                }
            }
        }
}

共有1个答案

祁默
2023-03-14

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

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

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

对于上面的每一个元素,如果它更高,则更换材料。这根本不是你想要的——你想要的是首先弄清楚i-th数字是否是最小的数字。如果没有,什么也不做(继续到下一个数字,检查该数字是否最低),如果是,将其写入一个新数组,并用一些占位符替换它,以表明您已经完成了该操作-建议是Integer。最大值,一个很好的建议。

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

  1. 制作一个大小合适的独立新数组
  2. 维护一个变量,计算这个新数组中写入了多少个数字——当你找到下一个最低的数字时,你会将其写入该索引
  3. 一种双循环结构,内部循环不写任何东西,它只跟踪i号是否为最低值
  4. i循环中的一些代码,但在j循环之后,只有当i实际上是最低的数字时才起作用。可能涉及一个最初设置的布尔值,并在内部循环中清除(循环j),然后是一个if,仅当布尔值保持为真时才起作用,即-不存在更低的数字
  5. j循环需要击中整个阵列,而不是“只击中你上方的东西”
  6. 您需要明确排除sentinel值。我建议你使用整数。最大值。这可能涉及另一个if

如果你的代码看起来像你粘贴的东西,那么你做得不对,因为你粘贴的东西没有做任何命名的策略元素。

 类似资料:
  • 我们有一个偶数放置排序和奇数放置排序的数组,这意味着偶数索引的子数组被排序,奇数索引的子数组被排序。例如-{1,4,2,7,4,18,5,19,20}两个排序的子数组是{1,2,4,5,20}和{4,7,18,19}-一组有偶数索引,另一组有奇数索引。有没有一种方法可以用O(1)空间复杂度和O(n)时间对整个数组进行排序?

  • 有些答案最初有这样的排序算法: 请注意,和都是全范围的,因此可以比大,也可以比小,所以它可以使成对的顺序正确,也可以使成对的顺序错误(实际上这两种顺序都正确!)。我认为这是一个错误(作者后来称之为错误),这会混淆数组,但它看起来排序正确。不过,原因并不明显。但是代码的简单性(范围很广,没有像冒泡排序那样的)使它变得有趣。 正确吗?如果是这样,它为什么起作用?它有名字吗? 带测试的Python实现:

  • 本文向大家介绍简单讲解奇偶排序算法及在Java数组中的实现,包括了简单讲解奇偶排序算法及在Java数组中的实现的使用技巧和注意事项,需要的朋友参考一下 奇偶排序是一个比较有个性的排序,基本思路是奇数列排一趟序,偶数列排一趟序,再奇数排,再偶数排,直到全部有序 举例吧, 待排数组 第一次比较奇数列,奇数列与它的邻居偶数列比较,如6和2比,4和1比,5和9比 交换后变成 第二次比较偶数列,即6和1比,

  • 问题内容: 有没有什么简便的方法可以按降序对数组进行排序,就像它们在Arrays类中如何按升序排序? 问题答案: 你可以使用它对所有对象进行排序 不能直接用于降序对原始数组进行排序。如果尝试Arrays.sort()通过传递由定义的反向 来调用该方法,则会抛出错误 找不到适合sort(int [],comparator)的方法 可以与“对象数组”(例如整数数组)一起使用,但不能与基本数组(例如整数

  • 主要内容:升序,降序我们在学习 Java 的过程中肯定会遇到对数组进行升序或降序等排序问题,本节主要介绍如何实现 Java 数组的升序和降序。Java 语言使用 Arrays 类提供的 sort() 方法来对数组进行排序。 升序 使用 java.util.Arrays 类中的 sort() 方法对数组进行升序分为以下两步: 导入 java.util.Arrays 包。 使用 Arrays.sort(数组名) 语法对数

  • 嗨,我目前有4个数组都持有不同的数据,我遇到的问题是我想按字母顺序对其中一个数组进行排序,通常我会这样做 其中数组将是我想按字母顺序排序的数组,但我需要数组一起排序。 比如说我的数组是这样的 我想根据Pet数组进行排序,我的输出应该是这样的,所有的第三个值现在都是第一个,第一个值现在是第三个(这比简化了很多,我的实际数组包含数千个输入) 有没有一种简单的方法可以做到这一点,我可以对一个数组进行排序