算法
文章平均质量分 75
wangdong20
这个作者很懒,什么都没留下…
展开
-
Linux C代码模拟哲学家就餐问题
有五个哲学家坐在一个圆桌上,他们要么在思考要么在吃饭要么在等待筷子来吃饭,当一个哲学家饿了的时候,就拿起盘子左右两边的筷子开始就餐。就餐完以后,就把筷子放回盘子左右,继续思考。哲学家必须拿起两只筷子才能开始就餐。当哲学家A相邻的哲学家B或者E在就餐时,A不能就餐因为A不能拿起两只筷子所以就不能进入就餐状态只能等待相邻的哲学家吃完饭放下筷子,A才能拿起筷子满足拿起两只筷子的条件从而进入就餐状态。哲学家就餐问题可以引申到操作系统资源抢占问题。现在用C代码实现哲学家就餐问题,打印出当前哲学家的状态变化原创 2020-06-06 15:29:20 · 1513 阅读 · 0 评论 -
Huffman压缩算法的javafx UI实现
基于Huffman算法的压缩和解压缩实现,至于Huffman算法的原理网上有很多资料可以查阅,这里就不多说了。今天为大家分享我写的Huffman压缩解压缩程序的实现基于javafx的UI界面,支持压缩和解压缩单个文件。运行效果如图,压缩操作:解压缩操作:源代码地址:https://github.com/wangdong20/huffman参考网址:https://g...原创 2019-05-20 11:19:15 · 260 阅读 · 0 评论 -
二叉树非递归遍历
二叉树有前序遍历,中序遍历,后序遍历。大部分情况,我们都是用递归来写这些遍历,代码简洁明了。如果能用非递归来写这些遍历,那么会对这些遍历理解得更深刻。前序遍历递归写法:private void displayPreOrder(Node root) { if (root != null) { System.out.print(" " + root.data); disp...原创 2019-02-10 13:46:35 · 176 阅读 · 0 评论 -
任务管理系统算法-Kahn’s algorithm for Topological Sorting(一)
上一遍分析了如何设计任务管理系统的算法,拓扑排序之任务管理系统思路设计。今天我们就利用Kahn’s algorithm for Topological Sorting来实现任务管理系统算法。设计一个数据结构Graph类来储存各个task之间的依赖关系,并根据每个task相互的依赖关系找出任务排列顺序。import java.util.ArrayList;import java.ut...原创 2018-12-03 08:50:21 · 855 阅读 · 0 评论 -
各种排序算法练习
这是我准备数据结构排序算法考试准备的练习代码,收获不少。import java.util.Collections;import java.util.LinkedList;import java.util.List;public class Driver { public static void main(String[] args) { // TODO Auto-gener...原创 2018-11-04 01:23:56 · 146 阅读 · 0 评论 -
拓扑排序之任务管理系统思路设计
问题概述:A task (e.g., A B C …) can be completed during a level only if it has no dependencies or all its dependencies have been have been completed.A dependency: (A, B) indicates that task A has to b...原创 2018-10-27 09:50:03 · 508 阅读 · 0 评论 -
2014华为机试题-字符串压缩
9月5日,华为2014校园招聘的机试题目通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串压缩程序,将字符串中连续出席的重复字母进行压缩,并输出压缩后的字符串。压缩规则: 1、仅压缩连续重复出现的字符。比如字符串"abcbc"由于无连续重复字符,压缩后的字符串还是"abcbc"。 2、压缩字段的格式为"字符重复的次数+字符"。例如:字符串"xxxy原创 2013-09-23 18:53:26 · 3306 阅读 · 3 评论 -
二叉树的基本操作
二叉树的基本操作,代码如下package 二叉树;import java.util.ArrayList;import java.util.List;public class BinaryTree>{ private TreeNode root; private int size; private List inorderList = new ArrayList(); pr原创 2013-09-21 11:54:24 · 1167 阅读 · 0 评论 -
动态规划之切割钢条
假设公司出售一段长度为i英寸的钢条的价格为Pi(i = 1, 2, ...单位:美元),下面给出了价格表样例:长度i 12 3 4 5 67 8 9 10价格Pi 15 8 9 10 1717 20 24 30切割钢条的问题是这样的:给定一段长度为n英寸的钢条和一个价格表Pi,求切割方案,使得销售收益Rn最大。当然,如果长度为n英寸的钢条价格P原创 2013-09-21 10:35:32 · 5935 阅读 · 3 评论 -
LCS最大公共子序列问题
在生物应用中,经常需要比较两个(或多个)不同生物体的DNA,例如:某种生物的DNA可能为S1=ACCGGTCGAGTGCGCGGAAGCCGGCCGAA,另一种生物的DNA可能为S2=GTCGTTCGGAATGCCGTTGCTCTGTAAA我们比较两个DNA串的一个原因是希望确定它们的相似度,作为度量两种生物的近似程度指标寻找第三个串S3,它所有碱基也都出现在S1和S2中,原创 2013-09-01 19:25:05 · 1931 阅读 · 0 评论 -
今天挑战的字符串转换成整数的程序
今天挑战了下庞果网的编程挑战题,一个字符串转换成整数的程序,看了别人的代码,自己觉得很惭愧(我的代码真是又臭又长)第一次上传代码时没有测试完全,导致有几个情况不合格,修改了下,基本满足题目要求求July能指点一二package ex25;public class GlobalMembers { public static int StrToInt(String str){原创 2013-06-10 21:12:05 · 1449 阅读 · 0 评论 -
折半查找插入排序法
我们知道折半查找只能在有序的数组里才能使用。其实在插入排序过程中,大家细心的话会发现,每次找插入位置时,这段元素是有序的,那么在这里为使用折半查找提供了条件。 但是用传统的折半查找肯定不行,因为我们这里要找的是要插入的位置例如:42,53, 64, 85, 58这5个元素在插入排序里就是58前面的元素全部有序,我们要找的是58应该插入的位置,应该是在64所在的位置而这个64所在的位原创 2011-11-19 20:39:13 · 2709 阅读 · 0 评论