冒泡排序方法交换

Bubble Sort method swapping

我的作业要求我编写几个方法来比较 .txt 文件中的一组名字。

我目前卡在了 BubbleSort 方法上。正在努力达到 运行.

这是我的 BubbleSort 代码:

 public static int bubbleSort(String[] array) {
    boolean swapped = false;
    int compNumber = 0;
    int length = length.array;
    while (swapped = false) {
      for (int i = 0; i < length.array-1; i++) {
        if (array[i-1] > array[i]) {
          String temp = 
          array[i-1] = array[i];
          swapped = true;
        }
      }
    }
    return compNumber;
  }

我不相信我交换正确,因为我不确定如何使用临时变量(因此它是空白的)。

有人可以看看这个并指出正确的方向吗?

非常感谢!

不确定你的算法是否正确,但这是标准的交换方式。如果您正在对字符串数组进行排序,您还需要获取数值(我假设字符串包含数字?)。 还刚刚注意到你会得到一个数组越界异常,如果你正在查看索引 i-1,则从 1 开始。 还有一点,i < length.array-1应该是i < array.length

还有一件事,循环应该一直持续到没有进行交换为止,所以它应该是 while (swapped == true),并在每次迭代中将其重新设置为 false。

    public static void bubbleSort(String[] array) {
    boolean swapped = true;
    int compNumber = 0;
    int length = length.array;
    while (swapped == true) { //note the ==
      swapped = false;
      for (int i = 1; i < array.length; i++) {
        compNumber++;
        if (Integer.parseInt(array[i-1]) > Integer.parseInt(array[i])) {
          String temp = array[i-1]
          array[i-1] = array[i];
          array[i] = temp;
          swapped = true;
        }
      }
    }
    return compNumber; 
  }