用冒泡排序和交换方法排序双链表

问题描述 投票:-2回答:1

我正在尝试对自我实现的双向链接列表进行排序,但是它似乎无休止地迭代,而且我不确定自己在做什么错。任何帮助将不胜感激。

public void sortLine() {
    int n = this.getSize();
    Module current = this.leftMostModule;
    Module next = this.leftMostModule.getRight();
    for (int i = 1; i < n - 2; n++) {
        for (int j = i; j < n - 1; j++) {
            if (current.getName().compareToIgnoreCase(next.getName()) > 0) {
                swap(current, next);
                break;
            } else if (current.getName().compareToIgnoreCase(next.getName()) < 0) {
                break;
            } else {
                next = next.getRight();
            }
        }
        current = current.getRight();
        next = current.getRight();
    }
    lineMap = this.getLineArray();
}

public void swap(module current, module next) {
    module temp = current;
    boolean leftModule = false;
    boolean rightModule = false;
    if (current.isLeftMostModule()) {
        leftModule = true;
    }
    if (next.isRightMostModule()) {
        rightModule = true;
    }
    temp.setLeft(current.getLeft());
    temp.setRight(current.getRight());

    current.setLeft(next.getLeft());
    current.setRight(current.getRight());

    next.setLeft(temp.getLeft());
    next.setRight(temp.getRight());
    if (leftModule) {
        next.setLeftMostModule();
        current.setNonMostModule();
    }
    if (rightModule) {
        current.setRightMostModule();
        next.setNonMostModule();
    }

}

我也调用了一个交换函数。谢谢。

java bubble-sort doubly-linked-list
1个回答
0
投票

外部for循环中的i计数器从不增加。

© www.soinside.com 2019 - 2024. All rights reserved.