原题:来自http://learn.akae.cn/media/ch26s01.html
1、修改
insert
函数实现插入排序的功能,链表中的数据按从小到大排列,每次插入数据都要在链表中找到合适的位置再插入。在第 6 节 “折半查找”中我们看到,如果数组中的元素是有序排列的,可以用折半查找算法更快地找到某个元素,想一想如果链表中的节点是有序排列的,是否适用折半查找算法?为什么?
1、下面是从小到大的插入函数,里面用了两个if 和 (*head)->next = node; 才实现插入自动排序功能。 我想去掉 if(lnode->next == NULL){ 判断和(*head)->next = node;两块语句实现此功能。想了好久也没有实现,请各位指点。
2、我觉得不能用折半算法查找,因为但连表是从表头开始查找元素的。
不知道是否正确。请各位给予答案。
插入算法: 44 link insert(link lnode, char ch) 45 { 46 link node = create_node(ch); 47 link *head; 48 if(lnode==NULL){ 49 return node; 50 } 51 if(lnode->next == NULL){ 52 if(lnode->element >= ch){ 53 node->next = lnode; 54 return node; 55 } 56 } 57 for(head=&lnode; (*head)->next; head=&(*head)->next){ 58 if((*head)->element >= ch){ 59 node->next = *head; 60 head = &node; 61 return lnode; 62 } 63 } 64 (*head)->next = node; 65 return lnode; 66 } 67 格式定义: 5 typedef struct node *link; 6 #include <stdio.h> 7 struct node{ 8 char element; 9 link next; 10 }; 根据字符创建节点 95 link create_node(char ch) 96 { 97 link p = malloc(sizeof *p); 98 p->element = ch; 99 p->next = NULL; 100 return p; 101 } 102
相关推荐
实现以下常用的内部排序算法并进行性能比较:"直接插入排序"," 折半插入排序"," 2—路插入排序"," 表插入排序"," 希尔排序"," 起泡排序"," 快速排序"," 简单选择排序"," 树形选择排序"," 堆排序"," 归并排序"," 链式...
以下问题要求统一在一个大程序里解决。 21、折半插入排序 22、21、折半插入排序 22、冒泡排序 21、折半插入排序 22、冒泡排序 23、快速排序 21、折半插入排序 22、冒泡排序 23、快速排序 24、简单选择排序 21、折半...
(1) 完成5种常用内部排序算法的演示,5种排序算法为:快速排序,直接插入排序,选择排序,堆排序,希尔排序; (2) 待排序元素为整数,排序序列存储在数据文件中,要求排序元素不少于30个; (3) 演示程序开始,...
表插入排序的源代码; 平台:CentOS release 5.4 (Final) 编译器:GCC 4.3.2
表插入排序,即使用链表的存储结构对数据进行插入排序。在对记录按照其关键字进行排序的过程中,不需要移动记录的存储位置,只需要更改结点间指针的指向。
直接插入排序 选择排序 堆排序 归并排序 快速排序 冒泡排序等七种排序方法
快速排序、倒序输出链表、链表插入排序、插入排序
插入排序 冒泡排序 堆排序 基数排序 选择排序 快速排序的源码 java实现
数据结构(c语言版)严蔚敏 吴伟民编著 中直接插入排序、折半排序、shell排序、冒泡排序、快速排序、选择排序、堆排序的实现、归并排序,使用c语言实现
其中包含了各种对数组排序的方法,数组下标从1开始,有插入排序(直接插入排序、希尔排序),交换排序(起泡排序、快速排序),选择排序(简单选择排序,堆排序(另外写))、归并排序(递归,非递归)。
C# 插入排序 冒泡排序 选择排序 快速排序 堆排序 归并排序 基数排序 希尔排序
排序算法java版,速度排行:冒泡排序、简单选择排序、直接插入排序、折半插入排序、希尔排序、堆排序、归并排序、快速排序.mht
插入排序插入排序插入排序插入排序插入排序插入排序插入排序
直接插入排序 冒泡排序 快速排序 直接选择排序 堆排序 二路归并排序 C#源代码 使用C#实现的数据结构中的排序算法
二叉排序树插入
数据结构 综合排序 冒泡排序 直接插入排序 快速排序 希尔排序,完整的代码,有每种排序时间的比较
插入排序,选择排序,基数排序,冒泡排序的C++实现
合并排序,插入排序,希尔排序,快速排序,冒泡排序,桶排序的C语言实现,原创。
全面的排序算法实现,包括插入排序、合并排序、堆排序、快速排序。 堆排序:HeapSort 讲解详见http://blog.csdn.net/fly_yr/article/details/8550701 插入排序:InSertion_Sort 讲解详见...
用C++,模板写的 7中排序. 快速排序, 归并排序,插入排序,选择排序,起泡排序,堆排序,希尔排序