java - 损坏的插入排序

标签 java algorithm insertion-sort

我已经调试这段代码一段时间了,我就是想不通为什么它不起作用。这是在 Java 中实现顺序插入排序的尝试。

public void resultSort(int[] resultSet){
    int j;
    for(int i = 0; i < resultSet.length; i++){
        j = i;
        while(j > 0 && resultSet[j-1] < resultSet[j]){
            swap(j, j-1);
            j = j-1;
        }
    }
}

public void swap(int index1, int index2){
    int sw = numbers[index1];
    numbers[index1] = numbers[index2];
    numbers[index2] = sw;
}

如果有人能指出这里的错误,我会很高兴。提前致谢!

最佳答案

您似乎对 numbersresultSet 有问题。如果您将 numbers 数组作为参数传递给您的排序函数,它可以工作。

一些建议:

  • 将您的 resultSet 作为参数传递给您的 swap 函数,以保持您实际排序的数组的一致性
  • 避免将类范围数组用于此类操作(这是有争议的,取决于您的实际任务)

关于java - 损坏的插入排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21767188/

相关文章:

algorithm - 使用插入排序按排序顺序返回数组的 k 个最小元素

java - 如何获取Java应用程序正在运行的GAE项目的ID?

java - 我应该使用哪种语言进行编码以通过语音控制运动?

arrays - 从数组中获取平均均衡

c++ - 丢弃视频帧

sorting - 为什么反转的分布在插入排序中不重要?

java - Spring Security 自定义身份验证提供程序总是导致错误的客户端凭据

java - 如何在没有 Autowiring 的情况下实例化spring data jpa存储库

python-3.x - 在 Python 中使用 Sets Insert Delete Get Random O(1) 顺序算法的工作