一、插入排序 直接插入排序: 一 一比对 折半插入排序:在已经拍好的序列中插入,适合初始记录无序、n较大的情况 直接插入排序代码实现 1 void InsertSort(SqList &L){ 2 //对顺序表L做直接插入排序 3 for(i=2;i<=L.length;++i) 4 if(L.r[ ...
分类:
其他好文 时间:
2020-07-12 16:45:08
阅读次数:
60
归并排序 归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为2-路归并。 作为一种典型的分而治之思想的算法应用,归并排序的实现由两种方法: 自 ...
分类:
编程语言 时间:
2020-07-12 12:09:18
阅读次数:
65
1. 二分法 二分查找也属于顺序表查找范围,二分查找也叫做折半查找,二分查找的时间效率为(logN) 二分查找的基本思想是:在有序表中,取中间记录作为比较对象,若给定值与中间记录的关键字相等,则查找成功,如果给定值小于中间值,则查找数组的前半段,否则查找数组的后半段。 二分查找只适用于有序数组或者链 ...
分类:
编程语言 时间:
2020-06-29 23:01:59
阅读次数:
100
查找操作:查询、检索、插入、删除 1)顺序查找: ①一般线性表的顺序查找:从线性表的一端开始,逐个检查关键字是否满足给定的条件。若查找到某个元素的关键字满足给定条件,则查找成功,返回该元素在线性表中的位置;若已经查找到表的另一端,还没有查找到符合给定条件的元素,则返回查找失败的信息。 ②有序表的顺序 ...
分类:
其他好文 时间:
2020-06-28 22:41:14
阅读次数:
60
思维导图 算法小结 1.顺序查找 ①基础方法 1 int Search(SSTable ST, KeyType key) 2 { 3 for(i=1;i<=ST.length;i++) 4 { 5 if(key==ST.R[i].key) return i; 6 } 7 return 0;//若未查 ...
分类:
其他好文 时间:
2020-06-28 12:34:09
阅读次数:
72
归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为2-路归并。 ...
分类:
编程语言 时间:
2020-06-28 00:09:58
阅读次数:
71
1. 平均比较次数的计算 题目 有个长度为12的无重复有序表,按折半查找法进行查找,在表内各元素等概率情况下,查找成功所需的平均比较(三元比较)的次数为() 解题思路 表内各元素等概率的情况下,不需要进行加权平均,算术平均就行了。计算出每个元素查找成功所需的比较次数,然后除以数组的长度。 1个元素只 ...
分类:
编程语言 时间:
2020-06-27 11:47:23
阅读次数:
72
插入排序之直接插入排序 博客说明 文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢! 插入排序法思想 插入排序(Insertion Sorting)的基本思想是:把n个待排序的元素看成为一个有序表和一个无序表,开始时有序表中只包含一个元素,无 ...
分类:
编程语言 时间:
2020-06-27 00:15:13
阅读次数:
54
一、归并排序 归并排序是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为2-路归并。 所谓“分”,指的是将一个 ...
分类:
编程语言 时间:
2020-06-17 01:03:57
阅读次数:
82
@ 队列(Queue)是一种经常使用的集合。Queue实际上是实现了一个先进先出(FIFO:First In First Out)的有序表。它和List的区别在于,List可以在任意位置添加和删除元素,而Queue只有两个操作: 把元素添加到队列末尾; 从队列头部取出元素。 超市的收银台就是一个队列 ...
分类:
编程语言 时间:
2020-06-06 00:53:25
阅读次数:
60