冒泡排序方法交换

时间:2015-03-16 01:19:47

标签: java bubble-sort

我的作业要求我编写几种方法来比较.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;
  }

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

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

非常感谢!

1 个答案:

答案 0 :(得分:0)

不确定您的算法是否正确,但这是交换的标准方法。如果你正在排序一个String数组,你还需要得到数值(我假设字符串包含数字?)。 还注意到你会得到一个超出范围的数组异常,如果你正在查看索引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; 
  }