煤炭公司职位排序法实施步骤建议.pdf
2022-01-10 09:00:39 61KB 资料
使用简单易懂的回溯算法将拓扑排序的所有序列输出,通过递归和深度优先搜索,核心思想是在查询到结果之后返回到上一级,同时将已访问点的入度加1,使其恢复未访问状态
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
利用随机函数产生30000个随机整数,利用插入排序、起泡排序、选择排序、快速排序、堆排序、归并排序等排序方法进行排序,并统计每一种排序上机所花费的时间。提示:用顺序存储结构。
2022-01-09 10:59:43 177KB 排序算法
1
对给定的图结构,主体利用贪心算法实现求解最小生成树的Kruskal算法,其中每次查找权值最小的边用快速排序实现优化。每次在满足和已选边不构成回路的条件下选择一条权植最小的边,添加到新的生成树中。
2022-01-08 19:55:33 31KB kruskal 最小生成树 快速排序
1
冒泡,快速,合并,插入,选择等排序算法的性能比较
2022-01-08 18:00:26 529KB 排序算法
1
各种排序算法源代码,各种排序算法性能比较:直接插入排序,希尔排序,冒泡排序,快速排序,简单选择排序,堆排序,二路归并排序,STL排序算法
2022-01-08 17:50:04 132KB 排序算法 C++ STL
1
RPG游戏黑暗之光unity游戏开发
2022-01-08 14:03:10 266.49MB unity
1
5. 二叉排序树的查找分析 比较次数 = 被查结点所在的层次数 二叉排序树的性能取决于树的形态而二叉树的形态取决于插入结点的顺序 平衡二叉树(AVL树)对于每个结点 | 左子树的深度 - 右子树的深度| 1 结点的平衡因子=左子树的深度 - 右子树的深度 AVL树中所有结点的平衡因子只有三种值 -101 9.6.3 处理冲突的方法 9.6.2 哈希函数的构造方法 构造哈希函数的目标 哈希地址尽可能
2022-01-07 05:50:06 706KB 文档 互联网 资源
上海交通大学数据结构课程作业,内部排序算法比较代码。 题目:在教科书中,各种内部排序算法的时间复杂度分析结果只给出了算法执行时间的阶或大概执行时间。试通过随机数据比较各算法的关键字比较次数和关键字移动次数,以取得直观感受。
2022-01-06 22:53:41 3KB 数据结构
1