Java单链表基本操作(七)--排序
来源:互联网 发布:淘宝手机卡怎么领取 编辑:程序博客网 时间:2024/05/18 03:31
单链表的插入排序比数组麻烦,因为每次都都要从头节点开始往后遍历,头节点也需要单独处理
package listnode;/** * @author Gavenyeah * @date Start_Time:2016年4月1日 下午14:07:04 * @date End_Time:2016年4月1日 下午14:55:04 */public class SortList { public static void main(String[] args) { Node head=ListNode.getSingleList(); ListNode.printList(head); head=new SortList().insertSortList(head); ListNode.printList(head); } public Node insertSortList(Node head){ Node p=head.next; Node pre=head; while(p!=null){ Node cur=head; //比较节点,每次都是从头节点开始 Node q=p.next; if(p.data<head.data){ //由于是单链表,每次只能从头节点开始比较 pre.next=q; p.next=head; head=p; }else while(cur.next!=p){ if(p.data<cur.next.data){//将P与cur.next进行比较,方便单链表插入 pre.next=q; p.next=cur.next; cur.next=p; p=pre; //保证pre每次指向的都是p前面的一个节点 }else cur=cur.next; } pre=p; p=q; } return head; }}
代码中调用的Node类和ListNode类,代码详见
Java单链表基本操作(一)–顺序查找
1 0
- Java单链表基本操作(七)--排序
- JAVA单链表基本操作
- Java排序算法(七):希尔排序(Shell排序)
- 单链表的基本操作(建立,输出及排序)
- java常用排序总结(七种)
- Django 学习笔记(七)数据库基本操作(增查改删)
- Django 学习笔记(七)数据库基本操作(增查改删)
- Django 学习笔记(七)数据库基本操作(增查改删)
- git 笔记记录(七) git基本操作
- Java基本排序(插入排序,冒泡排序,选择排序)
- Java文件操作大全(七)
- JAVA学习(七) JAR文件操作
- Java学习笔记七(文件夹操作)
- Java排序算法(七):折半插入排序
- Java排序算法总结(七):快速排序
- Java排序算法(七):折半插入排序
- Java排序算法(七):折半插入排序 .
- Java排序算法(七):折半插入排序
- 线性表的存储结构(链式存储结构)
- PowerShell 5.0和跨平台PowerShell支持class类编程
- c++第二次作业2
- ARM exception
- UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 0: ordinal not in range(128)
- Java单链表基本操作(七)--排序
- [LeetCode 326] Power of Three
- .net 单元测试
- java多线程的同步和死锁
- iOS-------UITableView
- 彻底理解ThreadLocal
- java设计模式之创建型模式-工厂方法模式
- 社会化分享 使用as
- Activity的启动流程