01 2020 档案
摘要:在多用户环境中,操作系统调度程序必须决定在若干进程中运行那个进程。一般一个进程只能被允许运用一个固定的时间片。一种算法是使用一个队列。开始时作业被放在队列的末尾。调度程度将反复提取队列中的第一个作业并运行它,直到运行完毕或者该作业的时间片被用完,并在作业为被用完时将其放入队列的末尾。但是一般来说,短
阅读全文
摘要:散列表的实现通常叫做散列。散列是一种用于以常数平均时间执行插入、删除和查找的技术。但是任何排序的信息都不会得到有效的支持。所以FindMax(),FindMin(),以及以线性时间打印的操作都是散列所不支持的。 理想的散列表数据结构值不过是一个包含有关键字的具有固定大小的数组。 关键字映射的函数叫做
阅读全文
摘要:常见数据结构——树 处理大量的数据时,链表的线性时间太慢了,不宜使用。在树的数据结构中,其大部分的运行时间平均为O(logN)。并且通过对树结构的修改,我们能够保证它的最坏情形下上述的时间界。 树的定义有很多种方式。定义树的自然的方式是递归的方式。一棵树是一些节点的集合,这个集合可以是空集,若非空集
阅读全文
摘要:队列ADT 像栈一样,队列也是一种表。然而使用队列时插入在一端进行而删除在另一端进行。 队列模型 队列的基本操作是Enquene(入队),它在表的末端插入一个元素,还有Dequene(出队),它是删除在表的开头的元素。 队列的数组形式 如同栈的形式一样,对于队列而言任何表的实现都是合法的。就像栈一样
阅读全文
摘要:栈ADT 栈(stack)是限制插入和删除只能在一个位置上进行的表,该位置是表的末端,叫做栈顶。栈的基本操作有进栈(push)和出栈(pop),前者相当于插入,后者相当于删除最后的元素。在最后插入的元素可以通过使用Top例程在执行Pop之前进行考查。对空栈进行的Pop或Top一般被认为是栈ADT的错
阅读全文
摘要:表,链表,游标实现,双重链表,多项式计算,基数排序算法
阅读全文
摘要:幂运算 计算一个整数的幂,常见的算法是使用N-1次自然乘法,但是下面的递归算法可能会更好一些,如果N是偶数,有X^N = X^(N/2) * X^(N/2), 如果X是奇数,那么有X^N = X^((N-1)/2) * X^((N-1)/2) * X。下面正是这种算法的实现: long int Po
阅读全文