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]+ " ");
}
}
}