java - 冒泡排序字符串数组

标签 java sorting

我正在尝试使用冒泡排序来按字母顺序排列我已读入程序的数组。代码编译时没有错误,但当我尝试运行该程序时,我的“if”构造上出现数组索引越界异常。我已将 int i 初始化为 0 以解释数组的第一个索引,因此我认为我的错误在其他地方。我并不是要求任何人为我编写代码,只是也许是正确方向的一点。感谢您的帮助。

public static String[] bubbleSort(String[] inL)
{
    String temp;
    int i = 0, passNum;

    for(passNum = 1; passNum <= (inL.length); i++)  // controls passes through bubble sort
    {
        if(inL[i].compareToIgnoreCase(inL[i + 1]) < 0)
        {
            temp = inL[i];
            inL[i] = inL[i + 1];
            inL[i + 1] = temp;
        }
    }

    return inL; // returns sorted array 
} // end bubbleSort method

最佳答案

您将 passNum 而不是 i 与数组的长度进行比较。由于 passNum 从未被修改,因此循环条件始终为 true,并且 i 会递增,直到超出数组的范围。

即使此特定问题得到解决,您当前的实现仍可能会遇到相差一错误的问题。考虑是否应该将 iinL.length - 1 进行比较。

关于java - 冒泡排序字符串数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20076729/

相关文章:

java - Spring Security 2 自定义身份验证提供程序不保存安全上下文

java - 在 uniqueResult() 之前使用 setMaxResults(1) 进行 hibernate 优化?

c# - 在 MFC 与 C# 中对字符串进行排序

python - 如何在多层 python 字典中找到最小值,以及它的 "path"(即叶值的键列表)

linux - unix排序问题

algorithm - 持续更新优先级队列的最佳算法/数据结构

java - 解密 AES key 时出现无效 key 异常

Java:对象数组不像非数组对象那样工作

java - Spring security 只允许访问具有特定用户名的用户

php - 如何按值对多维数组进行排序?