我的插入排序有什么问题?

时间:2014-03-18 07:20:56

标签: java insertion-sort

我不确定我的插入排序有什么问题。似乎对于i的每个增量,array [i]被复制到数组[i + 1],依此类推,直到整个数组被原始对象数组填充[i]`

public static void insertionSort(Course[] courseArray, String sortBy) {
    Course value;   // the next value from the unsorted list to be inserted into the sorted list
    int i;     // i is a pointer to an item in the unsorted list
    int j;    // j is a pointer to an item in the sorted list; originally the sorted list is just a[0]

    for (i = 1; i < courseArray.length - 1; i++) 
    {

        value = courseArray[i];

        j = i - 1;

        while (j >= 0 && (courseArray[j].compareByCourse(value)) < 0) {
            courseArray[j + 1] = courseArray[j];

            j = j - 1;

        }
        courseArray[i + 1] = value;

        System.out.println("i= " + i + "--------------------------------------");

        for (int p = 0; p < courseArray.length; p++) 
        {
            System.out.println(courseArray[p].toString());
        }

    }//end for

}//end insertionSort()`

我看了很多插入排序示例,我觉得好像我写得正确但显然,我错了。

1 个答案:

答案 0 :(得分:1)

您必须SWAP(交换)内部循环中的值(使用if条件)。

你只是覆盖了其中一个。

祝你好运。