Java:操作数组

标签 java arrays

我了解如何按升序和降序对 array 进行排序,但我正在尝试创建一个特定的模式。例如,我有一个随机顺序的 array。我将如何在模式中对这个 array 进行排序? “最小、最大、第二小、第二大、第三小、第三大……”等等。有什么想法吗?

int[] pattern = {8, 6, 1, 2, 3, 80, 56};

//这是开始

public class Test2 {

    public static void main(String[] args) {
        int[] array = {1,4,2,6,9,3,65,77,33,22};
        for (int i = 0; i < array.length; i++) {
            System.out.print(" " + array[i]);
        }
        wackySort(array);

    }

    //This sorts the array    
    public static void wackySort(int[] nums) {
        int sign = 0;
        int temp = 0;
        int temp2 = 0;
        for (int i = 0; i < nums.length; i++) {
            for (int j = 0; j < nums.length -1; j++) {
                if (nums[j] > nums[j+1]) {
                    temp = nums[j];
                    nums[j] = nums[j+1];
                    nums[j+1] = temp;

                }
            }
        }
        System.out.println();
        int firstPointer = 0;
        int secondPointer = nums.length -1;
        int[] newarray = new int[nums.length];
        for (int i = 0; i < nums.length; i+=2) {
            newarray[i] = nums[firstPointer++];
            newarray[i] = nums[secondPointer--];
        }
        for (int i = 0; i < newarray.length; i++) {
            System.out.print(" " + newarray[i]);
        }
    }
}

最佳答案

看起来像是作业。这么简单的提示

第一步:对数组进行升序排序

{1, 2, 3, 6, 8, 56, 80};

第 2 步:分配一个相同大小的新数组

step 3 遍历第一个数组,两个计数器。一个点在最开始,另一个点在最后。现在在新数组中分配第一个计数器的数据,然后将计数器增加一个。接下来分配最后一个计数器的数据并将其减一。

    int firstPointer = 0;
    int secondPointer = nums.length - 1;
    int[] newarray = new int[nums.length];
    int i = 0;
    for (i = 0; i < nums.length-1; i += 2) {
        newarray[i] = nums[firstPointer++];
        newarray[i+1] = nums[secondPointer--];
    }
    if(i<nums.length-1)
        newarray[i] = nums[firstPointer++];

关于Java:操作数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17416950/

相关文章:

java - Jtable 中单元格的行为(右键单击单元格内部)

arrays - Concourse CI - 数组变量

python - 从值数组中过滤 2D numpy 数组

php - 如何回显分解数组行

Java:用户输入 - 扫描仪 - 第二次输入后程序挂起

java - JME 中的线程不起作用

java - 如何从流中的模型对象获取字段列表并映射到另一个模型对象?

java - 在一行中初始化 Java 数组

javascript - 这个递归函数是怎么结束的呢?

sql - 具有数组元素顺序的数组类型的PostgreSQL JOIN,如何实现?