Location:
Search - 递归二分法
Search list
Description: 各种排序查找法与一些优秀的算法,包括二分查找,利用递推公式计算(裴波拉契数列),冒泡法,递归调用,顺序查找,选择法,直接插入,直接排序等...个人珍藏..初学者可以拿来参考下..很不错
Platform: |
Size: 18124 |
Author: huangzuwen |
Hits:
Description: 编写程序对数据序列采用二分查找法和顺序查找法查找元素的下标,要求使用类模板实现(其中二分法查找算法要求用递归实现,给定数据序列有序)。
Platform: |
Size: 1038 |
Author: lilinqing |
Hits:
Description: 目 录
译者序
前言
第一部分 预备知识
第1章 C++程序设计 1
1.1 引言 1
1.2 函数与参数 2
1.2.1 传值参数 2
1.2.2 模板函数 3
1.2.3 引用参数 3
1.2.4 常量引用参数 4
1.2.5 返回值 4
1.2.6 递归函数 5
1.3 动态存储分配 9
1.3.1 操作符new 9
1.3.2 一维数组 9
1.3.3 异常处理 10
1.3.4 操作符delete 10
1.3.5 二维数组 10
1.4 类 13
1.4.1 类Currency 13
1.4.2 使用不同的描述方法 18
1.4.3 操作符重载 20
1.4.4 引发异常 22
1.4.5 友元和保护类成员 23
1.4.6 增加#ifndef, #define和#endif语句 24
1.5 测试与调试 24
1.5.1 什么是测试 24
1.5.2 设计测试数据 26
1.5.3 调试 28
1.6 参考及推荐读物 29
第2章 程序性能 30
2.1 引言 30
2.2 空间复杂性 31
2.2.1 空间复杂性的组成 31
2.2.2 举例 35
2.3 时间复杂性 37
2.3.1 时间复杂性的组成 37
2.3.2 操作计数 37
2.3.3 执行步数 44
2.4 渐进符号(O、 健?、 o) 55
2.4.1 大写O符号 56
2.4.2 椒??58
2.4.3 符号 59
2.4.4 小写o符号 60
2.4.5 特性 60
2.4.6 复杂性分析举例 61
2.5 实际复杂性 66
2.6 性能测量 68
2.6.1 选择实例的大小 69
2.6.2 设计测试数据 69
2.6.3 进行实验 69
2.7 参考及推荐读物 74
第二部分 数据结构
第3章 数据描述 75
3.1 引言 75
3.2 线性表 76
3.3 公式化描述 77
3.3.1 基本概念 77
3.3.2 异常类NoMem 79
3.3.3 操作 79
3.3.4 评价 83
3.4 链表描述 86
3.4.1 类ChainNode 和Chain 86
3.4.2 操作 88
3.4.3 扩充类Chain 91
3.4.4 链表遍历器类 92
3.4.5 循环链表 93
3.4.6 与公式化描述方法的比较 94
3.4.7 双向链表 95
3.4.8 小结 96
3.5 间接寻址 99
3.5.1 基本概念 99
3.5.2 操作 100
3.6 模拟指针 102
3.6.1 SimSpace的操作 103
3.6.2 采用模拟指针的链表 106
3.7 描述方法的比较 110
3.8 应用 111
3.8.1 箱子排序 111
3.8.2 基数排序 116
3.8.3 等价类 117
3.8.4 凸包 122
3.9 参考及推荐读物 127
第4章 数组和矩阵 128
4.1 数组 128
4.1.1 抽象数据类型 128
4.1.2 C++数组 129
4.1.3 行主映射和列主映射 129
4.1.4 类Array1D 131
4.1.5 类Array2D 133
4.2 矩阵 137
4.2.1 定义和操作 137
4.2.2 类Matrix 138
4.3 特殊矩阵 141
4.3.1 定义和应用 141
4.3.2 对角矩阵 143
4.3.3 三对角矩阵 144
4.3.4 三角矩阵 145
4.3.5 对称矩阵 146
4.4 稀疏矩阵 149
4.4.1 基本概念 149
4.4.2 数组描述 149
4.4.3 链表描述 154
第5章 堆栈 161
5.1 抽象数据类型 161
5.2 派生类和继承 162
5.3 公式化描述 163
5.3.1 Stack的效率 164
5.3.2 自定义Stack 164
5.4 链表描述 166
5.5 应用 169
5.5.1 括号匹配 169
5.5.2 汉诺塔 170
5.5.3 火车车厢重排 172
5.5.4 开关盒布线 176
5.5.5 离线等价类问题 178
5.5.6 迷宫老鼠 180
5.6 参考及推荐读物 188
第6章 队列 189
6.1 抽象数据类型 189
6.2 公式化描述 190
6.3 链表描述 194
6.4 应用 197
6.4.1 火车车厢重排 197
6.4.2 电路布线 201
6.4.3 识别图元 204
6.4.4 工厂仿真 206
6.5 参考及推荐读物 217
第7章 跳表和散列 218
7.1 字典 218
7.2 线性表描述 219
7.3 跳表描述 222
7.3.1 理想情况 222
7.3.2 插入和删除 223
7.3.3 级的分配 224
7.3.4 类SkipNode 224
7.3.5 类SkipList 225
7.3.6 复杂性 229
7.4 散列表描述 229
7.4.1 理想散列 229
7.4.2 线性开型寻址散列 230
7.4.3 链表散列 234
7.5 应用——文本压缩 238
7.5.1 LZW压缩 239
7.5.2 LZW压缩的实现 239
7.5.3 LZW解压缩 243
7.5.4 LZW解压缩的实现 243
7.6 参考及推荐读物 247
第8章 二叉树和其他树 248
8.1 树 248
8.2 二叉树 251
8.3 二叉树的特性 252
8.4 二叉树描述 253
8.4.1 公式化描述 253
8.4.2 链表描述 254
8.5 二叉树常用操作 256
8.6 二叉树遍历 256
8.7 抽象数据类型BinaryTree 259
8.8 类BinaryTree 260
8.9 抽象数据类型及类的扩充 263
8.9.1 输出 263
8.9.2 删除 264
8.9.3 计算高度 264
8.9.4 统计节点数 265
8.10 应用 265
8.10.1 设置信号放大器 265
8.10.2 在线等价类 268
8.11 参考及推荐读物 275
第9章 优先队列 276
9.1 引言 276
9.2 线性表 277
9.3 堆 278
9.3.1 定义 278
9.3.2 最大堆的插入 279
9.3.3 最大堆的删除 279
9.3.4 最大堆的初始化 280
9.3.5 类MaxHeap 281
9.4 左高树 285
9.4.1 高度与宽度优先的最大及最小
左高树 285
9.4.2 最大HBLT的插入 287
9.4.3 最大HBLT的删除 287
9.4.4 合并两棵最大HBLT 287
9.4.5 初始化最大HBLT 289
9.4.6 类MaxHBLT 289
9.5 应用 293
9.5.1 堆排序 293
9.5.2 机器调度 294
9.5.3 霍夫曼编码 297
9.6 参考及推荐读物 302
第10章 竞??303
10.1 引言 303
10.2 抽象数据类型WinnerTree 306
10.3 类WinnerTree 307
10.3.1 定义 307
10.3.2 类定义 307
10.3.3 构造函数、析构函数及Winner
函数 308
10.3.4 初始化赢者树 308
10.3.5 重新组织比赛 310
10.4 输者树 311
10.5 应用 312
10.5.1 用最先匹配法求解箱子装载
问题 312
10.5.2 用相邻匹配法求解箱子装载
问题 316
第11章 搜索树 319
11.1 二叉搜索树 320
11.1.1 基本概念 320
11.1.2 抽象数据类型BSTree和
IndexedBSTree 321
11.1.3 类BSTree 322
11.1.4 搜索 322
11.1.5 插入 323
11.1.6 删除 324
11.1.7 类DBSTree 326
11.1.8 二叉搜索树的高度 327
11.2 AVL树 328
11.2.1 基本概念 328
11.2.2 AVL树的高度 328
11.2.3 AVL树的描述 329
11.2.4 AVL搜索树的搜索 329
11.2.5 AVL搜索树的插入 329
11.2.6 AVL搜索树的删除 332
11.3 红-黑树 334
11.3.1 基本概念 334
11.3.2 红-黑树的描述 336
11.3.3 红-黑树的搜索 336
11.3.4 红-黑树的插入 336
11.3.5 红-黑树的删除 339
11.3.6 实现细节的考虑及复杂性分析 343
11.4 B-树 344
11.4.1 索引顺序访问方法 344
11.4.2 m 叉搜索树 345
11.4.3 m 序B-树 346
11.4.4 B-树的高度 347
11.4.5 B-树的搜索 348
11.4.6 B-树的插入 348
11.4.7 B-树的删除 350
11.4.8 节点结构 353
11.5 应用 354
11.5.1 直方图 354
11.5.2 用最优匹配法求解箱子装载
问题 357
11.5.3 交叉分布 359
11.6 参考及推荐读物 363
第12章 图 365
12.1 基本概念 365
12.2 应用 366
12.3 特性 368
12.4 抽象数据类型Graph和Digraph 370
12.5 无向图和有向图的描述 371
12.5.1 邻接矩阵 371
12.5.2 邻接压缩表 373
12.5.3 邻接链表 374
12.6 网络描述 375
12.7 类定义 376
12.7.1 不同的类 376
12.7.2 邻接矩阵类 377
12.7.3 扩充Chain类 380
12.7.4 类LinkedBase 381
12.7.5 链接类 382
12.8 图的遍历 386
12.8.1 基本概念 386
12.8.2 邻接矩阵的遍历函数 387
12.8.3 邻接链表的遍历函数 388
12.9 语言特性 389
12.9.1 虚函数和多态性 389
12.9.2 纯虚函数和抽象类 391
12.9.3 虚基类 391
12.9.4 抽象类和抽象数据类型 393
12.10 图的搜索算法 394
12.10.1 宽度优先搜索 394
12.10.2 类Network 395
12.10.3 BFS的实现 395
12.10.4 BFS的复杂性分析 396
12.10.5 深度优先搜索 397
12.11 应用 399
12.11.1 寻找路径 399
12.11.2 连通图及其构件 400
12.11.3 生成树 402
第三部分 算法设计方法
第13章 贪婪算法 405
13.1 最优化问题 405
13.2 算法思想 406
13.3 应用 409
13.3.1 货箱装船 409
13.3.2 0/1背包问题 410
13.3.3 拓扑排序 412
13.3.4 二分覆盖 415
13.3.5 单源最短路径 421
13.3.6 最小耗费生成树 424
13.4 参考及推荐读物 433
第14章 分而治之算法 434
14.1 算法思想 434
14.2 应用 440
14.2.1 残缺棋盘 440
14.2.2 归并排序 443
14.2.3 快速排序 447
14.2.4 选择 452
14.2.5 距离最近的点对 454
14.3 解递归方程 462
14.4 复杂性的下限 463
14.4.1 最小最大问题的下限 464
14.4.2 排序算法的下限 465
第15章 动态规划 467
15.1 算法思想 467
15.2 应用 469
15.2.1 0/1背包问题 469
15.2.2 图像压缩 471
15.2.3 矩阵乘法链 476
15.2.4 最短路径 480
15.2.5 网络的无交叉子集 483
15.2.6 元件折叠 486
15.3 参考及推荐读物 491
第16章 回溯 492
16.1 算法思想 492
16.2 应用 496
16.2.1 货箱装船 496
16.2.2 0/1背包问题 503
16.2.3 最大完备子图 506
16.2.4 旅行商问题 508
16.2.5 电路板排列 510
第17章 分枝定界 516
17.1 算法思想 516
17.2 应用 519
17.2.1 货箱装船 519
17.2.2 0/1背包问题 526
17.2.3 最大完备子图 528
17.2.4 旅行商问题 529
17.2.5 电路板排列 532
Platform: |
Size: 5125525 |
Author: gufeng20081010 |
Hits:
Description: 递归二分法.
Platform: |
Size: 364 |
Author: 36107801@qq.com |
Hits:
Description: 二分法的c实现,折半查找递归函数,如果查找成功,函数返回关键字所在位置,否则返回-1-dichotomy c realized, binary search recursive function, if you succeed, the function returns keyword location, or else return-1
Platform: |
Size: 1024 |
Author: h |
Hits:
Description: 各种排序查找法与一些优秀的算法,包括二分查找,利用递推公式计算(裴波拉契数列),冒泡法,递归调用,顺序查找,选择法,直接插入,直接排序等...个人珍藏..初学者可以拿来参考下..很不错-err
Platform: |
Size: 17408 |
Author: huangzuwen |
Hits:
Description: 编写程序对数据序列采用二分查找法和顺序查找法查找元素的下标,要求使用类模板实现(其中二分法查找算法要求用递归实现,给定数据序列有序)。-Programming data sequence using binary search method and the order of search law search element subscript, require the use of class template realize (of which the dichotomy search algorithm requires recursive realize, given data in an orderly sequence).
Platform: |
Size: 1024 |
Author: lilinqing |
Hits:
Description: 用递归实现的二分法,数据结构的典型问题,二分查找也称折半查找,它要求待查找的数据元素必须是按关键字大小有序排列的顺序表。-Realize the dichotomy with recursive data structure of a typical problem, binary search, also known as split-half search, which requires the data elements to be search by keyword must be orderly arranged in the order of the size of table.
Platform: |
Size: 1024 |
Author: Anni |
Hits:
Description: 问题的提出:编写程序对数据序列采用二分查找法和顺序查找法查找元素的下标,要求使用类模板实现(其中二分法查找算法要求用递归实现,给定数据序列有序)。-Of the problem: the preparation of procedures for the data sequence using binary search method and the order of search law search element subscript, require the use of class template realize [of which the dichotomy search algorithm requires recursive realize, given data in an orderly sequence].
Platform: |
Size: 9216 |
Author: 王清 |
Hits:
Description: a.HUFFMAN树及HUFFMAN编码
任务:由用户输入n个结点权值,建立HUFFMAN树并输出HUFFMAN编码。
b.二叉树建立及相关算法实现
任务:按照广义表表达法建立二叉树,并实现二叉树的层次、先序、中序与后序遍历,以及输出树中叶子结点的结点值及叶子结点的个数。( 用递归或非递归的方法都可以)
要求能够输入树的各个结点,并能够输出用不同方法遍历的遍历序列;分别建立创建二叉树存储结构的的输入函数、输出层序遍历序列的函数、输出先序遍历序列的函数、输出后序遍历序列的函数以及输出叶子结点值和个数的函数。
C.排序算法的实现
任务:实现插入排序(直接插入排序、二分插入排序)、选择排序(直接选择排序、堆排序)、交换排序(冒泡排序、希尔排序)。
-a. HUFFMAN coding tree and HUFFMAN
Tasks: from user input n-node weights, the establishment of tree and output HUFFMAN coding HUFFMAN.
b. Tree-building and related algorithm
Tasks: generalized form in accordance with the establishment of the expression tree, and to achieve the level of binary tree, the first order, in sequence and after the traversal, as well as the output node tree leaf node value and the number of leaf nodes. (Using recursive or non-recursive method can be)
Request to enter the various tree nodes and different ways to traverse the output of the traversal sequence were set up to create the binary tree structure of the input storage function, the output sequence traversal sequence function, the output first traversal sequence function, the output sequence after the traversal of the function and the output leaf node function value and number.
C. Sort Algorithm
Tasks: the achievement of Insertion Sort (direct insertion sort, binary insertion sort), selec
Platform: |
Size: 45056 |
Author: 李珊珊 |
Hits:
Description: 多线程进行二分排序法,递归产生新线程,每一个父线程产生两个子线程,接着父线程对两个子数组进行合并-Multi-thread two hours sorting method, recursive generate a new thread, each thread is a parent produces two sub-threads, then the parent thread to merge the two sub-arrays
Platform: |
Size: 8192 |
Author: 张韶远 |
Hits:
Description: 使用二分法对样本集进行剪辑,剪辑法的思想,就是将样本集分成训练集与考试集, 利用训练集样本对考试集的样本进行分类(使用近邻法),如果考试集中某个样本分类错误的话,将这个样本删除。在该函数中,使用最近邻法,只进行一次剪辑(遍历完考试集中的样本以后退出)。还有一种重复剪辑法(适用于样本比较多的情况),把样本随机分为多个样本集,将相邻的两个样本前一个作为考试集,后一个作为训练集,调用二分剪辑。所有的样本子集剪辑完毕以后,在递归调用,直到没有样本被剪辑掉,没得讲,重复剪辑的效果肯定好一些。
-The sample sets using the dichotomy of the clips, editing law idea is to sample set into training set and test set, using the training set samples to the test set of samples (using the nearest neighbor algorithm), if the examination focused on a sample of classification error then delete this sample. In the function, use the nearest neighbor method, only once clips (focused on a sample of traversal finished after the exit exam). There is also a repeat clip method (samples are more applicable to the case), the samples were randomly divided into multiple sample set, the two adjacent samples of the former one as a test set, the latter one as a training set, call the two sub-clips. All the samples were a subset of the clips after they have finished, in the recursive call, until there are no samples were clip out, did not have to say that the effect of repeated clips definitely better.
Platform: |
Size: 1024 |
Author: shihao |
Hits:
Description: 编写程序对数据序列采用二分查找法和顺序查找法查找元素的下标,要求使用类模板实现(其中二分法查找算法要求用递归实现,给定数据序列有序)-Programming data sequence using binary search and sequential search method to find the next element standard, requires the use of class templates (which use a recursive binary search algorithm requires to achieve, given the data sequence order)
Platform: |
Size: 10240 |
Author: dxq |
Hits:
Description: 数据库结构与算法用二分法实现递归函数简单查找顺序表的过程!-Database structure and algorithm realization of recursive functions with a simple dichotomy in order to find the process of the table!
Platform: |
Size: 1024 |
Author: xiangnan |
Hits:
Description: 编写程序对数据序列采用二分查找法和顺序查找法查找元素的下标,要求使用类模板实现(其中二分法查找算法要求用递归实现,给定数据序列有序)。-The data series used to program the binary search method and the sequential search method to find the next element standard, requires the use of class templates (which use a recursive binary search algorithm requires to achieve, given the data sequence order).
Platform: |
Size: 236544 |
Author: 王一帆 |
Hits:
Description: 通过递归实现二分法,以递归的方式能快捷直接的实现平时要比较麻烦的二分法查询功能-// Function: FindStringInSortedArray
// Usage: index = FindStringInSortedArray (key, array, n)
// -------------------------------------------------------------
// The function searchs the array looking for the specified key.
// The argument n specifies the effective size of the array, which must
// be sorted according to the lexicographic order imposed by StringCompare.
// If the key is found, the order imposed by StringCompare. If the key is found, the order imposed by
// StringCompare. If the key is found, the function returns the index in the array at which that key appears.
// (If the key appears more than once in the array, any of the mathcing indices may be returned). If the key
// does not exist in the array, the funcion returns-1. In this implementation, FindStringInSortedArray is simply
// a wrapper all the work is done by the recursive function BinarySearch.
Platform: |
Size: 1024 |
Author: jim |
Hits:
Description: 棋盘覆盖的算法实现,主要使用递归,二分法实现,对算法的学习很有帮助-The chessboard coverage algorithm mainly use recursive dichotomy achieve, helpful learning algorithm
Platform: |
Size: 16431104 |
Author: 刘鸿彬 |
Hits:
Description: 采用MATLAB编程实现二分查找法的稀疏傅立叶变换算法。研究算法参数变化对信号频谱的影响,并对特定的宽带跳频信号进行稀疏傅立叶变换处理,得出相应的频谱,并与快速离散傅立叶变换的结果进行比较。(Recurrence of sparse Fourier transform)
Platform: |
Size: 465920 |
Author: luxiantong
|
Hits:
Description: METIS是由Karypis Lab开发的一个具有强大功能的图切分软件包。准确来说,METIS是一个串行图切分的软件包,Karypis Lab还提供了并行版的图切分软件包parMETIS和支持超图和电路划分的hMETIS。METIS的算法设计主要基于多层次递归二分切分法、多层次K路切分法以及多约束划分机制。用户使用METIS软件包时,可以根据需要选择相应的切分方式(METIS was developed by Karypis Lab with a powerful image segmentation package.To be precise, METIS is a serial graph syncopated package, and Karypis Lab also offers a parallel version of the tushard package parMETIS and hMETIS that supports hypergraphs and circuits.The algorithm design of METIS is mainly based on multi-level recursive dichotomy, multi-level k-path segmentation and multi-constraint partitioning mechanism.When users use the METIS package, they can select the corresponding syncopation according to the need)
Platform: |
Size: 5047296 |
Author: chaoren
|
Hits:
Description: 常用问题的算法,包括表达式求值,递归二分查找,归并算法,回溯法求解数独问题等(The commonly used algorithms, including recursive expression evaluation, two search, merging algorithm, backtracking and Sudoku problem etc.)
Platform: |
Size: 26624 |
Author: yiyiyiyiyiyiyi
|
Hits: