java单链表的冒泡排序
时间: 2023-11-13 19:58:57 浏览: 101
单链表的冒泡排序
5星 · 资源好评率100%
Java单链表的冒泡排序可以通过以下步骤实现:
1. 定义一个Node类表示链表节点,包含一个int类型的数据成员和一个指向下一个节点的指针。
2. 定义一个单链表类LinkedList,包含一个指向头节点的指针和一个排序方法bubbleSort()。
3. 在bubbleSort()方法中,使用两个嵌套的循环,外层循环控制排序的轮数,内层循环控制每一轮的比较和交换。
4. 在内层循环中,比较相邻两个节点的数据大小,如果前一个节点的数据大于后一个节点的数据,则交换它们的数据。
5. 在每一轮排序结束后,将最大的节点移动到链表的末尾,下一轮排序时不再考虑该节点。
6. 最后返回排序后的链表头节点。
以下是Java单链表的冒泡排序的代码实现:
```
public class Node {
int data;
Node next;
public Node(int data) {
this.data = data;
this.next = null;
}
}
public class LinkedList {
Node head;
public LinkedList() {
this.head = null;
}
public void bubbleSort() {
if (head == null || head.next == null) {
System.out.println("needn't order.");
return;
}
Node cur = head;
while (cur != null) {
Node pre = null;
Node next = cur.next;
boolean flag = false;
while (next != null) {
if (cur.data > next.data) {
flag = true;
if (pre != null) {
pre.next = next;
} else {
head = next;
}
cur.next = next.next;
next.next = cur;
pre = next;
next = cur.next;
} else {
pre = cur;
cur = next;
next = next.next;
}
}
if (!flag) {
break;
}
}
}
}
```
阅读全文