文档为主定理分析,主要用于递归形式,并且含有大量练习题和答案帮助记忆和消化。
2022-03-24 01:14:40 35KB 时间复杂度 主定理 练习题
1
比较直接插入排序、希尔排序、直接选择排序、堆排序、起泡排序、快速排序、归并排序、基数排序。随机生成一组待排序数据,个数不少于100个;各种算法对同一数据排序所需要的关键字比较次数和关键字移动次数,至少使用5组数据进行比较。1)插入排序:每次将一个待排序的数据元素,插入到前面已经排好序的数列中的适当位置,使数列依然有序;直到待排序数据元素全部插入完为止。 2)冒泡排序:两两比较待排序数据元素的大小,发现两个数据元素的次序相反时即进行交换,直到没有反序的数据元素为止。 3)选择排序:每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序放在已排好序的数列的最后,直到全部待排序的数据元素排完。 4)Shell排序:在直接插入排序算法中,每次插入一个数,使有序序列只增加1个节点,并且对插入下一个数没有提供任何帮助。如果比较相隔较远距离(称为 增量)的数,使得数移动时能跨过多个元素,则进行一次比较就可能消除多个元素交换。算法先将要排序的一组数按某个增量d分成若干组,每组中记录的下标相差d.对每组中全部元素进行排序,然后再用一个较小的增量对它进行,在每组中再进行排序。当增量减到1时,整个要排序的数被分成一组,排序完成。 5)归并排序:设有两个有序(升序)序列存储在同一数组中相邻的位置上,不妨设为A[l..m],A[m+1..h],将它们归并为一个有序数列,并存储在A[l..h]。 6)快速排序:快速排序是对冒泡排序的一种本质改进。它的基本思想是通过一趟扫描后,使得排序序列的长度能大幅度地减少。在冒泡排序中,一次扫描只能确保最大数值的数移到正确位置,而待排序序列的长度可能只减少1。快速排序通过一趟扫描,就能确保某个数(以它为基准点吧)的左边各数都比它小,右边各数都比它大。然后又用同样的方法处理它左右两边的数,直到基准点的左右只有一个元素为止。 7)堆排序:堆排序是一种树形选择排序,在排序过程中,将A[n]看成是完全二叉树的顺序存储结构,利用完全二叉树中双亲结点和孩子结点之间的内在关系来选择最小的元素。 8)基数排序:将所有待比较数值(正整数)统一为同样的数位长度,数位较短的数前面补零。然后,从最低位开始,依次进行一次排序。这样从最低位排序一直到最高位排序完成以后, 数列就变成一个有序序列。
2022-01-09 16:07:08 2.13MB 排序算法 比较 时间复杂度
1
本程序主要演示了归并,插入,快排等几种排序算法在各种不同数据量的情况下的算法效率,适合编程新手对排序算法的认识和学习
2021-12-24 10:25:53 4KB 时间复杂度测试
1
求解找到数组A[1..n]中元素的最大值和次最大值(本小题以数组元素的比较为标准操作)的算法,并分析其最坏情况的时间复杂度
2021-12-23 21:28:05 500B 算法
1
排序(Sorting) 是计算机程序设计中的一种重要操作,它的功能是将一个数据元素(或记录)的任意序列,重新排列成一个关键字有序的序列。排序方法选择得当与否直接影响程序执行的速度和辅助存储空间的占有量,进而影响整个软件的性能。因此需要我们对众多的排序算法有相当的了解,并且认真学习并掌握。 本文主要介绍快速排序算法和归并排序算法的基本概念、原理以及具体的实现方法,并对这两种排序算法的时间复杂度进行分析。
2021-12-21 17:30:12 60KB 快速排序 归并排序
1
大学二年级课程 算法设计与分析的一般算法时间复杂度的证明过程,希望可以帮到大家.
2021-12-20 13:01:00 115KB 算法时间复杂度证明
1
里面包含C++源代码(已修改BUG)、可执行文件、详细报告。 目录 1 需求分析 3 1.1 输入的形式和输入值的范围 3 1.2 输出的形式 4 1.3 程序所能达到的功能 5 1.4 测试数据 5 2 概要设计 8 2.1 主程序的流程 8 2.2 数据类型的定义 9 2.3 各程序模块之间的层次(调用)关系 10 3 详细设计 10 3.1 数据类型定义 10 3.2数据初始化 11 3.3 安全性检查 12 3.4 显示系统数据 13 3.5 银行家算法分配资源 14 4 调试分析 16 4.1 设计与实现的分析 16 4.2 算法的时间复杂性和改进设想 17 4.3 实现过程中遇到的主要问题及解决方法 19 4.4 设计过程的经验和体会 20 5 用户使用说明 21 6 测试与运行结果 22
1
分析了需求不可分割带能力约束的车辆路径问题(CVRP)的 2-OPT算法计算时间的平均复杂度。利用需求分布独立于客户的空间分布的特点,将车辆路径问题(VRP)转化为多旅行商 (MTSP)问题,并通过分析 MTSP进行 2-OPT操作的可行性条件,建立起该算法运行所需的迭代次数的分布函数,进而求得平均运算时间复杂度的上界。该文为有效评价针对 VRP的2-OPT算法,提供了理论依据,并为VRP领域的启发式算法的复杂度分析,提供了一种新思路。
2021-12-08 19:40:44 292KB 自然科学 论文
1
与我写的博客配套使用!里面包含word文档和程序实现源码!
2021-12-02 09:01:55 29KB 文档 互联网 资源 数据结构
算法的时间复杂度 对于组合优化问题,由于其可能的解是有限的,当问题的规模比较小时,总可以通过枚举的方法获得问题的最优解,但当问题的规模比较大时,就难于求解了。 常用的算法复杂度函数
2021-11-27 09:40:53 746KB 模拟退火算法和遗传算法
1