链表划分(引申到快速排序)
来源:互联网 发布:php开源做账系统 编辑:程序博客网 时间:2024/04/30 11:26
本总结是是个人为防止遗忘而作,不得转载和商用。
题目
给定一个链表和一个值x,将链表划分成两部分,使得划分后小于x的结点在前,大于等于x的结点在后。在这两部分中要保持原链表中的出现顺序。
如:给定链表1→4→3→2→5→2和x = 3,
返回:
1→2→2→4→3→5。
分析
新建两个指针p1和p2。
遍历一遍链表:
第一个1:比3小,放在p1后面:
p1-> 1
第二个4:比3大,放在p2后面:
P2 -> 4
第三个3:比3不小,放在p2后面:
p2-> 4 -> 3
重复以上过程
最后把p2放在p1的尾端,就实现了题目要求。
复杂度
时间复杂度是O(N),空间复杂度为O(1);
扩展
话说,如果再选个数(如:1.5)继续做上面的事情,然后再选个数做上面的事,再选个数….就这样不停的做这件事,这就是快速排序!
0 0
- 链表划分(引申到快速排序)
- <算法>基于三路划分的链表快速排序
- 由快速排序引申而来--如何学习算法
- 由快速排序引申而来--如何学习算法
- 由快速排序引申而来--如何学习算法
- 由快速排序引申的两个分类问题
- 双向划分的快速排序
- 快速排序的Hoare划分
- 快速排序中的区间划分
- 数据结构-快速排序-划分算法
- 快速排序的三者取中划分
- 快速排序之区间划分
- 快速排序(递归、分治、划分)
- 背景引申到状态栏
- 快速排序的最早划分方法:Hoare划分
- 快速排序的划分子序列思想:
- 快速排序的思想进行划分搜索。
- 快速排序 (解决小划分文件)
- Xamarin android如何调用百度地图入门示例(一)
- Spring4.2.5+Hibernate4.3.11组合开发
- 单击生成div,定时器自动隐藏
- Mac下利用Hexo+GitHub轻松搭建自己的博客
- 使用数据库排序or使用具体编程语言排序
- 链表划分(引申到快速排序)
- Hexo博客搭建与优化过程中常见问题及解方案
- Label与ScrollView
- 51nod 1024 矩阵中不重复的元素(数学水题-取对数)
- 【HAOI2008】硬币购物
- 有些段子
- HDU 5916 Harmonic Value Description【构造】【2016中国大学生程序设计竞赛(长春)】
- 字符串翻转算法-JAVA
- typedef常用方法