/**
*定义节点类
*/
公共静态类ListNode {
整数值;
列表下一个节点;
列表节点(int val){
this.val=val;
}
}
/**
* 冒泡排序
*/
公共静态ListNode排序(ListNode头){
if (head==null || head.next==null) {
返回头;
}
//获取链表的长度
ListNode长度Node=head;
整数长度=0;
while (lengthNode !=null) {
长度++;
lengthNode=lengthNode.next;
}
列表节点结果=null;
//循环冒泡排序
for (int i=0; i 长度; i++) {
结果=bubbleSort(head);
}
返回结果;
}
/**
单泡
*/
公共静态ListNode bubbleSort(ListNode头){
ListNode点=头;
for (; point.next !=null; point=point.next) {
if (point.val point.next.val) {
int temp=point.val;
point.val=point.next.val;
point.next.val=临时;
}
}
返回头;
}
/**
* 打印链接列表
*/
公共静态无效printList(ListNode头){
而(头!=空){
System.out.print(head.val + " ");
头=头.下一个;
}
}
公共静态无效主(字符串[] args){
//构建链表
ListNode head=new ListNode(3);
ListNode节点1=new ListNode(5);
ListNode节点2=new ListNode(2);
ListNode节点3=new ListNode(4);
ListNode节点4=new ListNode(1);
head.next=节点1;
节点1.下一个=节点2;
节点2.下一个=节点3;
节点3.下一个=节点4;
System.out.println("---------排序前-----");
打印列表(头);
System.out.println(" ");
头=排序(头);
System.out.println("---------排序后---------");
打印列表(头);
【Java编程:单向链表的冒泡排序实现方法】相关文章:
1.蛤蟆讨媳妇【哈尼族民间故事】
2.米颠拜石
3.王羲之临池学书
4.清代敢于创新的“浓墨宰相”——刘墉
5.“巧取豪夺”的由来--米芾逸事
6.荒唐洁癖 惜砚如身(米芾逸事)
7.拜石为兄--米芾逸事
8.郑板桥轶事十则
9.王献之被公主抢亲后的悲惨人生
10.史上真实张三丰:在棺材中竟神奇复活
用户评论
这真的很有帮助,我一直在学习 Java 的链表算法。
有11位网友表示赞同!
冒泡排序确实很基础,但理解它对学习其他排序算法还是很有用的。
有15位网友表示赞同!
代码示例清晰易懂,方便学习。希望能看到更有高级的排序算法实现。
有10位网友表示赞同!
终于看明白了怎么在单向链表上操作冒泡排序!
有5位网友表示赞同!
java 的代码注释也很详细,很容易理解每个步骤。
有9位网友表示赞同!
这种方式比用数组实现的冒泡排序区别在哪儿?
有12位网友表示赞同!
有没有什么情况会让冒泡排序更慢?比如当链表特别长的时候吗?
有12位网友表示赞同!
学习算法感觉还是很抽象的,代码实现真的很直观。
有12位网友表示赞同!
我之前是用c++实现的,看来java 实现很类似。
有20位网友表示赞同!
这个教程对于初学者来说非常友好!
有14位网友表示赞同!
我想知道链表排序还有哪些其他的方法?
有13位网友表示赞同!
这段代码的功能实现了冒泡排序算法的核心思想吧?
有8位网友表示赞同!
我会把这篇教程分享给我正在学习数据结构的朋友们。
有16位网友表示赞同!
现在越来越多的平台使用Java开发了,学习这些基础算法很重要!
有16位网友表示赞同!
感觉单向链表排序还是比较复杂啊。
有13位网友表示赞同!
冒泡排序效率怎么样?在实际应用中常用的算法吗?
有11位网友表示赞同!
我需要把这个知识点巩固一下,也许可以写一些练习题。
有8位网友表示赞同!
学习了java的线性表和链表之后,感觉很多问题都能用它来解决!
有8位网友表示赞同!
现在很多面试题目都涉及到这些算法,所以要好好积累积累。
有6位网友表示赞同!