【Weiss】【第03章】练习3.16

【练习3.16】

假设我们有一个基于数组的表A[0,1...N-1],并且我们想删除所有相同的元素。

LastPosition初始值为N-1,但应该随着相同元素被删除而变得越来越小。

考虑图3-61中的伪代码程序段。过程Dlelte删除位置j上的元素并使表破坏。

a.解释该过程是如何工作的

b.利用一般的表操作重写这个过程

c.如果用标准的数组实现,则这个过程的运行时间是多少?

d.使用链表实现的时间是多少?

e.给出一个算法以O(NlogN)时间解决问题

f.证明:如果只使用比较,那么解决该问题的任何算法都需要Ω(NlogN)次比较

g.证明:如果我们允许除比较之外的其它操作,并且这些关键字都是实数,那么我们可以不用元素间的比较就可以解决问题。

时间: 2024-12-18 22:33:38

【Weiss】【第03章】练习3.16的相关文章

异步编程系列第03章 自己写异步代码

p { display: block; margin: 3px 0 0 0; } --> 写在前面 在学异步,有位园友推荐了<async in C#5.0>,没找到中文版,恰巧也想提高下英文,用我拙劣的英文翻译一些重要的部分,纯属娱乐,简单分享,保持学习,谨记谦虚. 如果你觉得这件事儿没意义翻译的又差,尽情的踩吧.如果你觉得值得鼓励,感谢留下你的赞,愿爱技术的园友们在今后每一次应该猛烈突破的时候,不选择知难而退.在每一次应该独立思考的时候,不选择随波逐流,应该全力以赴的时候,不选择尽力而

第03章-VTK系统概述(1)

[译者:这个系列教程是以Kitware公司出版的<VTK User's Guide -11th edition>一书作的中文翻译(出版时间2010年,ISBN: 978-1-930934-23-8),由于时间关系,我们不能保证每周都能更新本书内容,但尽量做到一周更新一篇到两篇内容.敬请期待^_^.欢迎转载,另请转载时注明本文出处,谢谢合作!同时,由于译者水平有限,出错之处在所难免,欢迎指出订正!] 本章旨在介绍VTK系统的总体概述,并讲解运用C++.Java.Tcl和Python等语言进行VT

&lt;&lt;Python基础教程&gt;&gt;学习笔记 | 第03章 | 字符串

第03章: 使用字符串 ------ 支持的操作 索引 切片 增加元素 删除元素 更新元素 查找元素(检查某个元素是否是序列中的一员) 序列长度 最大值 最小值 其他内建函数 >>> website='http://www.python.org' >>> website[-3:]='com' #此操作不合法,因为字符串是不变,不能做修改 Traceback (most recent call last): File "<pyshell#162>&q

JavaScript权威指南第03章 类型、值和变量

类型.值和变量 数据类型分类: 原始类型(primitive type):数字 字符串 布尔值 null undefined 对象类型(object type): 对象是属性的集合,每个属性都由"名/值"对构成. javascript解释器有自己的内存管理机制,可以自动对内存进行垃圾回收. 3.1数字 javascript不区分浮点和整型,所有的数字都是按照浮点型处理. 3.1.1整型直接量 3.1.2浮点型直接量 3.1.3算数运算 3.1.4二进制浮点数和四舍五入错误 当进行小数进

JavaScript权威指南第03章 类型、值和变量(2)

题目链接:https://oj.leetcode.com/problems/set-matrix-zeroes/ Given a m x n matrix, if an element is 0, set its entire row and column to 0. Do it in place. 一个个找肯定会超时,我们可以分别用一个行向量和一个列向量进行维护.这样O(m*n) 能出来 class Solution { public: void setZeroes(vector<vector

第03章-VTK系统概述(3)

[译者:这个系列教程是以Kitware公司出版的<VTK User's Guide -11th edition>一书作的中文翻译(出版时间2010年,ISBN: 978-1-930934-23-8),由于时间关系,我们不能保证每周都能更新本书内容,但尽量做到一周更新一篇到两篇内容.敬请期待^_^.欢迎转载,另请转载时注明本文出处,谢谢合作!同时,由于译者水平有限,出错之处在所难免,欢迎指出订正!] [本节对应原书中的第29页至第39页] 3.2创建VTK应用程序 本章内容包括利用Tcl,C++

groovy入门 第03章 字符串和正则表达式

字符串和正则表达式 3.1字符串字面值 可以使用单引号.双引号.三引号来封装字符串. 使用单引号封装的字符串就是字符串序列本身. 使用双引号可以嵌套单引号,并可以将表达式包含进来. 使用三引号可以包含多行文本. def age=25 'My age is ${age}'            // 输出My age is ${age} "My age is ${age}"           //输出My age is 25 """'My age is $

第03章-VTK系统概述(2)

CPU: I3 2.4Ghz 4核,内存8G 方式一:采用其原生接口操作 JVM:-Xms1024m -Xmx1024m -Xmn512m-XX:PermSize=128m -XX:MaxPermSize=256m 4000节点(50个属性),4000关系:1秒,其间cpu使用率25%,761M 8000节点(50个属性),8000关系:2秒,其间cpu使用率25%,829M 16000节点(50个属性),16000关系:5秒,其间cpu使用率25,983M 24000节点(50个属性),240

【Weiss】【第03章】练习3.25:数组模拟队列

[练习3.25] 编写实现队列的例程,使用 a.链表 b.数组 Answer: 在这章一开头就已经写了个链表的队列例程了,所以实际上只要做b小题就可以. 数组模拟队列和链表的两点小不同是: ①.数组空间有限,入队需要检测数组是否已经满 ②.数组经过几次操作后,rear可能绕回front前面,所以许多操作都要用模来实现. 测试代码: 1 #include <iostream> 2 #include "queue.h" 3 using namespace std; 4 usin