Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 插入排序的问题_Java_Algorithm - Fatal编程技术网

Java 插入排序的问题

Java 插入排序的问题,java,algorithm,Java,Algorithm,我曾尝试编写一个插入排序算法,我认为该算法应该有效,但它没有 int [] array = {108, 10, 45, 67, 108, 23, 29, 108, 48, 67,902, 2, 32, 74, 108, 902}; for(out = 1; out < array.length; out++) { min = array[out]; in = out - 1; while(array[in] > min && in >

我曾尝试编写一个插入排序算法,我认为该算法应该有效,但它没有

int [] array = {108, 10, 45, 67, 108, 23, 29, 108, 48, 67,902, 2, 32, 74, 108, 902};

for(out = 1; out < array.length; out++) {
    min = array[out];
    in = out - 1;

    while(array[in] > min && in > 0) {
        array[in + 1] = array[in];
        in--;
    }
    array[in] = min;   
}
预期产出为:

2, 10, 23, 29, 32, 45, 48, 67, 67, 74, 108, 108, 108, 108, 902, 902
试试这个

int[]array={902,902,48,108,32,45,45,67,74,108,45,45,3,108,902,108,902};
for(int i=1;i0&&array[j-1]>x){
数组[j]=数组[j-1];
j=j-1;
}
数组[j]=x;
}
System.out.println(array.toString(array));
/**
*插入排序O(n^2)
*@作者shohanur rahaman
*/
公共类insertionSort{
公共静态void main(字符串参数[]){
int[]ara={5,32,99,0,6,-12,19};

对于(int i=1;i=0&&tmp什么是输入,预期结果是什么?看起来像sorted to meSome当Java提供了一个非常合适的
Array.sort()
:-)时,您可能会认为您的错误是编写了自己的排序在任何情况下,我们都无法在不知道输入的情况下判断您的输出是否有错误。建议您在问题结束和/或删除之前添加该选项。使用预期的输出进行编辑。代码完全没有问题。这是“In”的值。试着调试每个步骤的程序,你就会发现问题。打印数组的一个更简单的方法是:
System.out.println(Arrays.toString(array));
有一段时间没有用Java编程了,所以我画了一个完全空白。试过array.toString()但不起作用:P
2, 10, 23, 29, 32, 45, 48, 67, 67, 74, 108, 108, 108, 108, 902, 902
    int[] array = {902, 902, 48, 108, 32, 45, 45, 67, 74, 108, 45, 45, 3, 108, 902, 108, 902};
    for (int i = 1; i < array.length-1; i++) {
        int x = array[i];
        int j = i;
        while (j > 0 && array[j-1] > x) {
            array[j] = array[j-1];
            j = j - 1;
        }
        array[j] = x;
    }
    System.out.println(Arrays.toString(array));
    /**
 *  Insertion sort O(n^2)
 * @author shohanur rahaman
 */
public class insertionSort {
    public static void main(String args[]){

        int[] ara = {5,32,99,0,6,-12,19};

        for(int i=1;i<ara.length;i++){
            int tmp = ara[i]; 
            int j=i-1;
            while(j>=0 && tmp<ara[j]){
                ara[j+1] = ara[j];
                j--;
            }
            ara[j+1] = tmp;
        } // end parent loop

        for(int i=0;i<ara.length;i++){
            System.out.print(ara[i]+ " ");
        }
    }
}