链表——链表的插入排序和选择排序
来源:互联网 发布:阿里云设置二级域名 编辑:程序博客网 时间:2024/06/07 20:02
链表的插入排序:
public class Solution { public ListNode insertionSortList(ListNode head) { if(head == null||head.next ==null) return head; ListNode help=new ListNode(0);//辅助结点; ListNode cur=head; while(cur!=null) { ListNode next=cur.next;//记录下一个结点; ListNode pre=help;//每次都遍历一次新链表,找到 cur结点所要插入的位置; while(pre.next!=null&&pre.next.val<cur.val) { pre=pre.next; } cur.next=pre.next; pre.next=cur; cur=next; } return help.next; }}
链表的选择排序:
选择排序是从未排序的部分中找到最小值,然后放在排好序部分的尾部,逐渐将未排序的部分缩小,最后全部变为排好序的部分。
本题使用了两个辅助头节点。
public class Solution { public ListNode insertionSortList(ListNode head) { if(head == null||head.next == null) return head; ListNode help=new ListNode(0); help.next=head; ListNode dump=new ListNode(0); ListNode temp=dump; while(help.next!=null) { ListNode min_pre=help; ListNode cur=help; while(cur.next!=null) { if(cur.next.val<min_pre.next.val) min_pre=cur; cur=cur.next; } temp.next=min_pre.next; min_pre.next=min_pre.next.next; temp=temp.next; } temp.next=null; return dump.next; }}
0 0
- 链表——链表的插入排序和选择排序
- 选择排序和插入排序的区别
- 插入排序和选择排序的实现
- 【排序】时间复杂度为O(N^2)的排序——冒泡、选择和插入排序
- 常见排序算法——选择排序、冒泡排序、插入排序和原地排序
- 老生常谈——选择排序和插入排序
- 【算法和数据结构】—— 1.选择排序、插入排序
- 插入排序和选择排序
- 选择排序和插入排序
- 选择排序和插入排序
- 选择排序和插入排序
- 选择排序和插入排序
- 插入排序和选择排序
- 选择排序和插入排序
- 插入排序和选择排序
- 选择排序和插入排序
- 选择排序和插入排序
- 插入排序和选择排序
- GIT的常用指令
- Unity菜单编程-自定义的图片Inspector面板
- Java线程池
- java httpServer端接受post请求数据并使用3DES+base64加密解密demo希望能够对您有帮助
- session和cache的区别
- 链表——链表的插入排序和选择排序
- watchOS 2教程(二):表格
- 如何创建webp格式的图片
- 458-Decoder
- Shiro 1 , 登录过程
- FZU - 2214-Knapsack problem
- 自适应平滑滤波
- body css样式中 设置宽度和背景色
- Dubbo与Zookeeper、SpringMVC整合和使用(负载均衡、容错)