![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Program work
文章平均质量分 79
Master_Reid
这个作者很懒,什么都没留下…
展开
-
Program work 3. Implementation of Deque using array
需求大意:原创 2014-10-26 22:09:16 · 505 阅读 · 0 评论 -
Program work 16. Radix Sort in Java
不是基于比较的排序是基于位数上的排序, 且仅适用于整数.此位数的排序不会影响前一位数排序好的相对位置, 是stable的排序影响效能的关键在于数组中最大数字的位数最差时间复杂度为O(d*n).另外需要O(n)spaced是最大数字的位数, 决定循环的轮数, n是每轮处理的数目的大小.PseudocoderadixSort (arr, tmp){原创 2015-04-30 10:32:05 · 369 阅读 · 0 评论 -
Program work 14. Insertion Sort in Java
最差时间复杂度: O(n*n)最好时间复杂度: O(n), 已经排好序平均时间复杂度: O(n*n)Pseudocode:for i ← 1 to length(A) - 1 j ← i while j > 0 and A[j-1] > A[j] swap A[j] and A[j-1] j ← j - 1 end w原创 2015-04-30 10:02:32 · 282 阅读 · 0 评论 -
Program work 18. Bubble Sort in Java
每轮操作将该轮最大的数放入数组"末尾"最差平均时间复杂度为O(n*n)最好时间复杂度为O(n), 需要加标记, 且数组已排好序的情况下Pseudocode:bubblesort (A : list[0..n-1]) { var i, j; for i from 0 to n-2 { for j from 0 to n-2-i {原创 2015-04-30 11:13:03 · 333 阅读 · 0 评论 -
Program work 17. Selection Sort in Java
每轮循环将该轮最小的数放在前面已排好的数的末尾最好最坏平均复杂度是O(n*n)Pseudocode:selectionSort (arr){ Find the smallest card. Swap it with the first card. Find the second-smallest card. Swap it with the secon原创 2015-04-30 11:02:57 · 463 阅读 · 0 评论 -
Program work 13. Heap Sort in Java
关键在于最大堆的建立和重构 (其实两个过程是一样的)因为堆是平衡二叉树, 所以数组可以直接用下标表示父子的节点关系, 数组要从下标1开始.将最大值移到数组只需要O(n)重构堆需要O(lgn)所以upper bound is O(n*logn)事实上, lower bound is Ω(n*logn) PseudocodeheapSort (arr, len)原创 2015-04-29 19:51:02 · 326 阅读 · 0 评论 -
Program work 11. Quick Sort in Java
原理性的东西请自行google或wiki, 不再累述Pseudocode:quickSort(array, left, right){ index = partion(array, left, right); if (left < index) { quickSort(array, left, index); } if (index < right) {原创 2015-04-29 16:15:30 · 570 阅读 · 0 评论 -
Program work 12. Merge Sort in Java
Pseudocode:merge(arr, tmp, begin, end){ if (begin < endl) { get middle mergeSort(arr, tmp, begin, middle); mergeSort(arr, tmp, middle, end); merge(arr, tmp, begi原创 2015-04-29 16:40:16 · 403 阅读 · 0 评论 -
Program work 10. AOE Network
需求: 给定一个AOE network. AOE network是一副有向图, 每个顶点代表事件, 每条边代表一个活动, 每条边的活动代表这个活动完成所需要的时间.对于给定的一个AOE network, 我们定义起点和终点, 然后需要计算起点到终点每个事件最晚开始时间和最早开始时间. 还有关键活动是哪些. 具体何为AOE network可自行百度.Progr原创 2015-01-23 19:34:09 · 1529 阅读 · 0 评论 -
Program work 9. Traveling salesman problem (TSP)
开发环境: Linux 14.04 LTS 编译器: g++ 开发工具: Eclipse 开发语言: c++ (由于在Linux下, 无法生成.exe文件, 附上.cpp文件) 输入为8个文件: (每个文件包含有向权图. 且a→b和b→a的权值不同. 没有自环) TSP5.txt TSP10.txt TSP20.txt TSP50.txt TSP100.txt TSP250.txt TSP500.原创 2015-01-16 00:15:22 · 648 阅读 · 0 评论 -
Program work 8. 最小生成树算法Sollin's Algorithm实现
最小生成树算法网上好多: Kruskal 和 Prim的课本都有, 网上也有, 唯独Sollin的比较少, 原因是比较少用...这里为Sollin增添一篇.步骤: 1. 开始时, 每个节点自为一棵树. 遍历每个节点, 对于每个节点, 找出与其相连的节点中代价最小的边, 然后连接. (允许出现重复) 2. 步骤1后会生成多棵不相连的树. 此时原创 2014-12-21 10:44:04 · 4518 阅读 · 0 评论 -
Program work 7. 用数组实现一棵二叉搜索树的建立与节点删除操作
需求: 输入: 2, 3, 1, 4, 5. 生成一颗二叉搜索树应: 2 1 3 x x x 4 x x x x x x x 5 (x代表该节点为空) 输入指定删除位置, 并展示删除后的二叉搜索树. 如: 删除5, 该位置无节点, 弹出节点为空的信息. 例如删除6, 则删除后的二叉搜索树为: 2 1 3 x x x 5原创 2014-12-17 21:18:43 · 440 阅读 · 0 评论 -
Program work 4. Infix expression convert to Prefix expression (Ⅱ)
Data Structure Assignment 3 – ⅡProgram environment: OS: Ubuntu 14.04 32 bits IDE: Eclipse Language: C++ Compiler: g++Input & Output:原创 2014-11-04 00:39:08 · 490 阅读 · 0 评论 -
Program work 4. Infix expression convert to Prefix expression (Ⅰ)
Program environment: OS: Ubuntu 14.04 32 bits IDE: Eclipse Language: C++ Compiler: g++Input & Output:A legal infixexpression string is consid原创 2014-11-04 00:12:24 · 669 阅读 · 0 评论 -
Program work 5. 用链表实现矩阵及实现矩阵转置
用链表实现一个2为方阵原创 2014-11-16 17:02:26 · 1574 阅读 · 0 评论 -
Program work 6. 每个节点只含一个链接点的双向链表实现
一般我们要实现双链表的时候,每个节点都会存一个数据元,然后一个原创 2014-11-16 17:22:04 · 501 阅读 · 0 评论 -
Program work 2. Random walk
需求大意:在一片n*m的原创 2014-10-26 22:00:58 · 382 阅读 · 0 评论 -
Program work 1. Hanoi Towers
Program Environment OS: Ubuntu 32bits IDE: AnjutaCompiler: gnu gccProgram Description Input: integer from 1 to 16 representing the number of disks to be moved.原创 2014-10-26 21:54:17 · 387 阅读 · 0 评论 -
Program work 15. Shell Sort in Java
Shell本质上就是insertion sort但是在insertion sort之前, 先做gap大于1的insertion sort这样在最后一步做insertion sort的时候, 由于数组已经接近排序完成所以最后的insertion sort会非常快, 最后一步O(n)时间复杂度根据gap的选取而不同. 这里使用Hibbard的gap, 2的k次方-1: [1,原创 2015-04-30 10:12:42 · 339 阅读 · 0 评论