斐波那契查找是一种在有序表中高效查找指定元素的算法,比折半查找要复杂一些,主要复杂在要多做不少准备工作。下面看它的工作流程: 1.计算并保存一个斐波那契序列的数组,方便以后取值。数组名记为f,例如f[1]=1,f[2]=1,f[3]=2,f[4]=3,f[5]=5,f[6]=8,f[7]=13,f[ ...
分类:
编程语言 时间:
2017-08-15 12:35:44
阅读次数:
223
原博文 归并:将两个或两个以上的有序表组合成一个新有序表。 归并操作的步骤: 申请空间,使其大小为两个已经排序序列之和,该空间用来存放合并后的序列 设定两个指针,最初位置分别为两个已经排序序列的起始位置 比较两个指针所指向的元素,选择相对小的元素放入到合并空间,并移动指针到下一位置 重复步骤3直到某 ...
分类:
编程语言 时间:
2017-08-11 19:57:09
阅读次数:
190
插入排序算法分为直接插入、折半插入和希尔排序 1.直接插入排序 直接插入排序是一种最简单的排序方法,其基本操作是将一条记录插入到已排好序的有序表中,从而得到一个新的、记录数量增1的有序表。 算法步骤 (1)设待排序的记录存放在数组list[1....n]中, (2)循环n-1次,每次使用顺序查找法, ...
分类:
编程语言 时间:
2017-08-09 11:23:13
阅读次数:
186
笔记来自:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/0014316724772904521142196b74a3f8abf93d8e97c6ee6000 本篇纯属自己学习摘抄 ...
分类:
其他好文 时间:
2017-08-08 15:17:05
阅读次数:
156
给一个严格递增数列,函数int binSearch(SeqList T, KeyType k)用来二分地查找k在数列中的位置。 函数接口定义: 其中T是有序表,k是查找的值。 裁判测试程序样例: 输入格式: 第一行输入一个整数n,表示有序表的元素个数,接下来一行n个数字,依次为表内元素值。 然后输入 ...
分类:
其他好文 时间:
2017-08-06 17:04:11
阅读次数:
128
一、定义 二分查找 又称为折半查找 , 是一种查找效率较高的方法 。 要求 : 1 . 所查找的序列为有序序列 2. 只能在顺序存储结构上实现 二、基本思想 每次将给定的 key 值与有序表中间位置上记录的数据进行比较 ,确定待查记录所在的范围 , 然后逐渐缩小查找范围 , 直到确定找到或找不到 。 ...
分类:
其他好文 时间:
2017-08-06 14:16:04
阅读次数:
143
插入排序(InsertionSorting)的基本思想是:把n个待排序的元素看成为一个有序表和一个无序表,开始有序表只包含一个元素,无序表中包含有n-1个元素,排序过程中每次从无序表中取出第一个元素,把它的排序码依次与有序表元素的排序码进行比较,将它插入到有序表中的适当位置,使之成为新的有序表。 ...
分类:
编程语言 时间:
2017-08-05 21:13:58
阅读次数:
128
这篇文章是学习了小甲鱼-数据结构与算法结合自考教材编写出的代码,希望自己逐渐在算法造诣上能更上一层楼。 归并排序(递归实现) “归并”一词在中文含义中就是合并的意思,而在数据结构中的定义是将两个或者两个以上的有序表组合成一个新的有序表,就叫归并。 归并排序(Merge Sort)就是利用归并的思想实 ...
分类:
编程语言 时间:
2017-08-05 11:08:03
阅读次数:
213
题目来源于王道2018数据结构考研复习指导线性表的综合练习 编译环境:VS2015 题目:从顺序表中删除其值在给定s与t之间(包含s和t,要求s<t)的所有元素,如果s或t不合理或者顺序表为空,则显示出错信息并退出运行。 注意:这道题目与上一道有所不同。上一道题目所要求的表是有序表,而这道题则没要求 ...
分类:
其他好文 时间:
2017-08-04 11:59:36
阅读次数:
149
归并排序是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。 将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。 归并排序的基本思想 将待排序序列R[0 ...
分类:
编程语言 时间:
2017-08-01 11:16:15
阅读次数:
163