07 2018 档案
摘要:本文参考自《剑指offer》一书,代码采用Java语言。 更多:《剑指Offer》Java实现合集 题目 在一个长度为n+1的数组里的所有数字都在1到n的范围内,所以数组中至少有一个数字是重复的。请找出数组中任意一个重复的数字,但不能修改输入的数组。例如,如果输入长度为8的数组{2, 3, 5, 4
阅读全文
摘要:本文参考自《剑指offer》一书,代码采用Java语言。 更多:《剑指Offer》Java实现合集 题目 在一个长度为n的数组里的所有数字都在0到n-1的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。例如,如果输入长度为7的数组
阅读全文
摘要:基本概念 在信号量机制中,每个要访问临界资源的进程都必须自备同步的PV操作,大量分散的同步操作会给系统管理带来麻烦,且容易因为同步操作不当而导致系统死锁。于是便产生了一种新的进程同步工具——管程(Monitors)。 管程(Monitors):是一个资源管理模块,其中包含了共享资源的数据结构,以及由
阅读全文
摘要:本文根据《大话数据结构》一书,实现了Java版的一个简单的散列表(哈希表)。 基本概念 对关键字key,将其值存放在f(key)的存储位置上。由此,在查找时不需比较,只需计算出f(key)便可直接取得所查记录。这个函数 f() 就叫做散列函数,按这个思想建立的表称为散列表。 散列技术即是一种存储方法
阅读全文
摘要:信号量机制 基本概念 信号量:信号量(Semaphores)的数据结构由一个值value和一个进程链表指针L组成,信号量的值代表了资源的数目,链表指针链接了所有等待访问该资源的进程。 PV操作:通过对信号量S进行两个标准的原子操作(不可中断的操作)wait(S)和signa(S),可以实现进程的同步
阅读全文
摘要:判断方法(奇数): 错误判断方法:通过a%2==1来判断。(原因:负奇数对2取余的结果为-1) 正确判断方法:(1) 通过a%2!=0来判断。 (2) 通过(a&1)==1来判断。(推荐使用,位操作,性能更优) Java代码: ————利用“a%2!=0”判断———— 0为偶数 11为奇数 -11为
阅读全文
摘要:本文根据《大话数据结构》一书及网络资料,实现了Java版的平衡二叉树(AVL树)。 平衡二叉树介绍 在上篇博客中所实现的二叉排序树(二叉搜索树),其查找性能取决于二叉排序树的形状,当二叉排序树比较平衡时(深度与完全二叉树相同,[log2n]+1),时间复杂度为O(logn);但也有可能出现极端的斜树
阅读全文

浙公网安备 33010602011771号