单链表快速排序算法实现
单链表结构:
typedef int ElemType;
typedef struct ListNode* List;struct ListNode
{ElemType keyList next;
};
实现代码如下:
void QuickSort( List head, List tail )
{if ( head->next == tail || head->next->next == tail )return;List mid = head->next;List p = head;List q = mid;ElemType pivot = mid->key;List t = mid->next;while ( t != tail ){if ( t->key < pivot )p = p->next = t;elseq = q->next = t;t = t->next;}p->next = mid;q->next = tail;QuickSort( head, mid );QuickSort( mid, tail );
}
调用时参数head为(带头节点的)单链表头节点指针,tail为单链表尾节点的next指针指向的类容。通常情况下tail的内容为NULL,因此,调用时为QuickSort(head, NULL)。
单链表快速排序算法实现相关推荐
- python单链表实现具体例子_Python实现数据结构线性链表(单链表)算法示例
本文实例讲述了Python实现数据结构线性链表(单链表)算法.分享给大家供大家参考,具体如下: 初学python,拿数据结构中的线性链表存储结构练练手,理论比较简单,直接上代码. #!/usr/bin ...
- 线性表之链式存储结构_单链表相关算法
在存储结构上,不需要连续的存储空间,需要上一个结点的指针域 指向下一个结点即可,找到一个结点就可以找到下一个结点. 学习教材是大话数据结构,加上自己的一些个人理解.这个算法 有点绕,需要对指针 相关内 ...
- 单链表的算法之尾部插入节点
单链表的算法之插入节点 1.访问链表中各个自己的指针 (1)只能用头指针,不能用各个节点自己的指针.因为实际中我们保存链表不会保存各个节点的指针,只能通过头指针来访问链表节点. (2)前一个节点内部的 ...
- 尾插法建立单链表的算法
尾插法建立单链表的算法 实现代码: #include <iostream> #include <stdlib.h> using namespace std; #define m ...
- 排序算法——单链表快速排序(划分函数从一边划分)
我们知道了普通的快速排序利用的划分函数是从两边向中间划分,但是对于单链表,这种划分函数可就显得不这么适用了.原因在于单链表每个节点只存在存放后一个结点的指针域,找到后一个节点容易,但是想要找到前一个结 ...
- python实现单链表快速排序升序linkedqueue_数据结构回顾
顺序结构 顺序栈(Sequence Stack) 1 2 3 4 5 6typedef struct { ElemType *elem; int top; int size; int incremen ...
- python实现单链表快速排序升序linkedqueue_同时对多个数组进行排序
关于 同时对多个数组进行排序的搜索结果 回答 本人学习数据结构时看到的不错的总结,共享一下了 文件有一组记录组成,记录有若干数据项组成,唯一标识记录的数据项称关键字; 排序是将文件按关键字的递增(减) ...
- python实现单链表快速排序升序linkedqueue_数据结构1
一. ( (本题 15 分)试设计一个结点数据类型为整型的带表头结点的有序单 链表,然后设计一个算法,该算法将这个有序单链表划分成两个单链表,使 得第一个单链表中包含原单链表中所有数值为奇数的结点, ...
- python实现单链表快速排序升序linkedqueue_LeetCode 总结 - 搞定 Linked List 面试题
链表删除 [203] Remove Linked List Elements [19] Remove Nth Node From End of List [83] Remove Duplicates ...
最新文章
- MySQL federated 引擎跨服务器使用实例
- 企业级BI分析解决方案,解决数据应用难题
- 【算法学习笔记】19.算法设计初步 最大子列和问题的几种方法
- 日常经典用语、成语及谚语
- c语言gets与fgetc,区分C语言中getch、getche、fgetc、getc、getchar、fgets、gets 转
- 关于Content-Type: multipart/form-data的支持
- 【教程】javascript浏览器对象入门教程
- java之tomcat搭建文件服务器
- java实践体会,java实践心得体会范文3篇
- Android 使用Fragment,ViewPagerIndicator 制作csdn app主要框架
- 翻译任务中的BPE词表实践总结
- HP电脑的增霸卡功能操作详解
- 无需绿幕的全自动视频抠图工具|unscreen
- Windows10性能优化设置
- java分页及返回数据封装实例
- Sublime常用快捷键
- 线性表的链式存储结构(完整代码(C语言)+运行实例)
- 前端 psd切片生成html.css,1个将PSD网页模板切片输出为DIV+CSS架构网页教程
- 推理时 cnn bn 折叠;基于KWS项目
- 关于win10X64 连接oracle