单链表快速排序
来源:互联网 发布:人流疏散模拟软件 编辑:程序博客网 时间:2024/05/18 01:13
2015.11.27 面试一点资讯 ,面试官是很nice的校友师兄,无奈基本功太差,跪了!
#include <iostream>using namespace std;#define random(x) (rand()%x)struct ListNode{int value;ListNode* next;};void create_list(ListNode* head){ListNode* pNode = head;for(int i = 0; i < 10; i++){ListNode* pNew = new ListNode;pNew->value = random(10);pNew->next = NULL;pNode->next = pNew;pNode = pNode->next;}}void print_list(ListNode* head){ListNode* pNode = head->next;while(pNode != NULL){cout << pNode->value << ' ';pNode = pNode->next;}cout << endl;}void quick_sort(ListNode* head, ListNode* tail){if(head->next == tail || head->next->next == tail)return;ListNode* mid = head->next;ListNode* pLess = head;ListNode* pGreater = mid;int pivot = mid->value;ListNode* pNode = mid->next;while(pNode != tail){if(pNode->value < pivot){pLess->next = pNode;pLess = pNode;}else{pGreater->next = pNode;pGreater = pNode;}pNode = pNode->next;}pLess->next = mid;pGreater->next = tail;quick_sort(head, mid);quick_sort(mid, tail);}int main(){ListNode* head = new ListNode;head->value = -1;head->next = NULL;create_list(head);print_list(head);quick_sort(head, NULL);print_list(head);return 0;}
0 0
- 单链表快速排序
- 单链表快速排序
- 单链表快速排序
- 单链表快速排序
- 单链表快速排序
- 单链表的快速排序
- 单链表 快速排序
- 单链表的快速排序
- 单链表的快速排序
- 单链表的快速排序
- 单链表快速排序
- 单链表快速排序
- 单链表的快速排序
- 单链表的快速排序
- 浅谈单链表快速排序
- 单链表的快速排序
- 单链表的快速排序
- 单链表快速排序
- C# 数据类型和字节长度
- hdu 3460 Ancient Printer(贪心 or Trie树)
- 日期对话框
- 代数--数学之根
- 关于手机刷机备份资料的问题
- 单链表快速排序
- 从关系数据库到非关系数据库
- 论文修改内容
- Python基础_正则表达式学习一
- Java堆内存的10个要点
- iOS在纯代码中使用AutoLayout添加约束
- (NO.00004)iOS实现打砖块游戏(二):实现游戏主界面动画
- Maven的pom.xml配置文件详解
- MAT 中ManiActivity $1 是什么