java - 将整数插入排序数组

标签 java arrays sorting

我正在尝试编写一个方法,该方法接受一个排序数组和一个整数,创建一个大小大 1 的新数组,然后插入新整数并保持排序。

我已经尝试了几种不同的实现并让它们工作 - 但对于这个特定的实现,我无法理解哪里出了问题。

    int[] array1 = new int[]{1, 2, 3, 4, 6, 7, 8};
    int[] printArray = insert(array1, 5);

是数组,方法是

public static int[] insert(int[] a, int k) {
    int[] s = new int[a.length + 1];
    for(int i = 0; i < a.length; i++) {
        if(k < s[i]) {
            s[i] = k;
            for(int j = i + 1; j < s.length; j++) {
                s[j] = a[i];
                i++;
            }
            return s;
        } else {
            s[i] = a[i];
        }
    }
    return s;
} 

此方法打印出 1、2、3、4、6、7、8、0,而不是 1、2、3、4、5、6、7、8。

最佳答案

改变

if(k < s[i]) {

if(k < a[i]) {

在第 4 行。

关于java - 将整数插入排序数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32708108/

相关文章:

java - 在 Spring 框架内外部化 ehcache.xml 文件中的 terracottaconfig 属性

java - Android:获取 Zip 中的文件数?

java - Java中的基本加密算法无法解密

c++ - (C++) 关于语法的非常基本的问题

arrays - awk 输出元素乱序

Javascript - 使用对象 className 过滤数组

Java排序逻辑和识别两个对象的最大值

python - 如何过滤掉python中的单词?

java - 带有 iterator.next 的空指针

python - 如何在 numpy 中创建递增的多维数组