链表的排序
来源:互联网 发布:apache cxf 中文教程 编辑:程序博客网 时间:2024/06/05 20:15
链表可以用多种方式去排序,但是链表就只有那么几种:
(1)插入排序 (适合)
(2)冒泡排序 (适合)
(3)希尔排序 (适合)
(4)选择排序 (适合)
(5)快速排序 (不适合)
(6)合并排序 (不适合)
(7)基数排序 (不适合)
(8)堆排序 (不适合)
这里只写链表的插入算法的排序,性能比较优
void *Sort(Snode *head){
head *pre,curr,*p,*q;
p=head->next;
head->neaxt=NULL;//断开头结点
while(p!=NULL){
pre=head;
curr=pread->next;
if(curr!=NULL&&curr->data<p->data){
pre=curr;
curr=curr->next;
}//比较节点大小,但是注意首次比较不执行哦,同学们仔细阅读代码啊
q=p;
p=p->next;
q->next=pre->next;//吼吼,开始插入节点喽
pre->next=q;
}
}
PS:代码实际非常简单,本人极不喜欢冒泡插入,如果我是面试官,这道题有人用冒泡,OK,pass.希望大家能写出比较高效的代码,勤思考,多动脑。 0 0
- 链表的一种排序---冒泡排序
- 链表的排序
- 链表的排序
- 链表的排序 .
- 链表的排序
- 链表的排序
- 链表的排序
- 链表的排序
- 链表的排序
- 链表的排序
- 链表的排序
- 链表的排序
- 链表的排序
- 链表的排序
- 链表的排序
- 链表的排序
- C++基于链表 指针的插入排序,冒泡排序,选择排序,计数排序
- 双向链表的排序
- 关于Oracle 10g的schedule job
- FreeMarker使用
- C++:公有继承、私有继承和保护继承
- 使用Memcached、Spring AOP构建数据库前端缓存框架
- Linux常用命令集合
- 链表的排序
- 解题报告:线段树的查询
- C#从零开始学习笔记《励志篇》
- iOS开发经验技巧之iOS深入学习 含协议/代理/block传值(Block全面分析)
- start.bat
- POJ 2247 && HDU 1058 Humble Numbers(数论)
- 编译64bit Linux Kernel 时报 genksyms 找不到
- 谷歌IO大会月底召开 Android 6.0
- LXC容器