代写COMP2823 Assignment 1 S1 2023代做R编程

COMP2823

Assignment 1

S1 2023

Problem 1. (20 points)

Given an array A consisting of n integers, we want to compute a matrix B where for any 0 ≤ i < j < n we have

B[i][j] = f([A[i], A[i + 1], ..., A[j − 1]])

Consider the following algorithm for computing B:

Algorithm 1 Range Function Computation

1: function RangeFunc(A)

2: B ← new n × n matrix

3: for i ← 0 to n − 1 do

4: for j ← i + 1 to n − 1 do

5: C ← make a copy of A[i : j]

6: B[i][j] ← f(C)

7: return B

Assume that f(C) runs in Θ(log |C|) time and that allocating the space for the matrix takes O(n 2 ) time.

Your task is to

a) Using O-notation, upperbound the running time of RangeFunc. Explain your answer with a detailed line by line analysis.

b) Using Ω-notation, lowerbound the running time of RangeFunc. Explain your answer.

Problem 2. (40 points)

We would like to design an augmented queue data structure. In addition to the usual enqueue and dequeue operations, you need to support the even-diff operation, which when run on a queue Q = ⟨q0, q1, q2, . . . , qn−1⟩ returns

Examples:

• even-diff([1, 3, 50, 48]) returns 4,

• even-diff([1, 3, 50, 48, 30]) returns 4,

• even-diff([3, 50, 48, 30]) returns 65.

We are to design an implementation of the methods enqueue, dequeue, and even-diff so that all operations run in O(1) time. You can assume that the data structure always starts from the empty queue.

Your data structure should take O(n) space, where n is the number of elements currently stored in the data structure.

Your task is to:

a) Design a data structure that supports the required operations in the required time and space.

b) Briefly argue the correctness of your data structure and operations.

c) Analyse the running time of your operations and space of your data structure.

Problem 3. (40 points)

We would like to implement an ADT for keeping track of a collection of queues.

We would like to implement the following operations:

• init: Initialize the system having a single empty queue

• enqueue(Q, e): Q is a position specifying a given queue in the system, and e is the element to be enqueued into Q

• dequeue(Q, e): Q is a position specifying a given queue in the system, from which we could like to dequeue an element

• split(Q): Q is a position specifying a given queue in the system whose elements needs to be redistributed evenly into two new queues.

• iterate(): iterate over the queues stored in the system

Examples:

• given the state [⟨1, 5, 4⟩,⟨3, 7, 5, 2⟩,⟨10⟩] if we split the second queue the state should become [⟨1, 5, 4⟩,⟨3, 7⟩,⟨5, 2⟩,⟨10⟩],

• given [⟨1, 5, 4⟩,⟨3, 7, 5, 2⟩] if we dequeue from the first queue the state should become [⟨5, 4⟩,⟨3, 7, 5, 2⟩],

Design a data structures for the ADT such that enqueue, dequeue, and init run in O(1) time, and split runs in O(log m) amortised time, where m is the number of operations performed. Your data structure should take O(n) space, where n is the number of elements currently stored in the data structure.

Your task is to:

a) Design a data structure that supports the required operations in the required time and space.

b) Briefly argue the correctness of your data structure and operations.

c) Analyse the running time of your operations and space of your data structure.

Written Assignment Guidelines

• Assignments should be typed and submitted as pdf (no pdf containing text as images, no handwriting).

• Start by typing your student ID at the top of the first page of your submission. Do not type your name.

• Submit only your answers to the questions. Do not copy the questions.

• When asked to give a plain English description, describe your algorithm as you would to a friend over the phone, such that you completely and unambiguously describe your algorithm, including all the important (i.e., non-trivial) details. It often helps to give a very short (1-2 sentence) description of the overall idea, then to describe each step in detail. At the end you can also include pseudocode, but this is optional.

• In particular, when designing an algorithm or data structure, it might help you (and us) if you briefly describe your general idea, and after that you might want to develop and elaborate on details. If we don’t see/understand your general idea, we cannot give you marks for it.

• Be careful with giving multiple or alternative answers. If you give multiple answers, then we will give you marks only for "your worst answer", as this indicates how well you understood the question.

• Some of the questions are very easy (with the help of the slides or book). You can use the material presented in the lecture or book without proving it. You do not need to write more than necessary (see comment above).

• When giving answers to questions, always prove/explain/motivate your answers.

• When giving an algorithm as an answer, the algorithm does not have to be given as (pseudo-)code.

• If you do give (pseudo-)code, then you still have to explain your code and your ideas in plain English.

• Unless otherwise stated, we always ask about worst-case analysis, worst case running times, etc.

• As done in the lecture, and as it is typical for an algorithms course, we are interested in the most efficient algorithms and data structures.

• If you use further resources (books, scientific papers, the internet,...) to formulate your answers, then add references to your sources and explain it in your own words. Only citing a source doesn’t show your understanding and will thus get you very few (if any) marks. Copying from any source without reference is considered plagiarism.



热门主题

课程名

mktg2509 csci 2600 38170 lng302 csse3010 phas3226 77938 arch1162 engn4536/engn6536 acx5903 comp151101 phl245 cse12 comp9312 stat3016/6016 phas0038 comp2140 6qqmb312 xjco3011 rest0005 ematm0051 5qqmn219 lubs5062m eee8155 cege0100 eap033 artd1109 mat246 etc3430 ecmm462 mis102 inft6800 ddes9903 comp6521 comp9517 comp3331/9331 comp4337 comp6008 comp9414 bu.231.790.81 man00150m csb352h math1041 eengm4100 isys1002 08 6057cem mktg3504 mthm036 mtrx1701 mth3241 eeee3086 cmp-7038b cmp-7000a ints4010 econ2151 infs5710 fins5516 fin3309 fins5510 gsoe9340 math2007 math2036 soee5010 mark3088 infs3605 elec9714 comp2271 ma214 comp2211 infs3604 600426 sit254 acct3091 bbt405 msin0116 com107/com113 mark5826 sit120 comp9021 eco2101 eeen40700 cs253 ece3114 ecmm447 chns3000 math377 itd102 comp9444 comp(2041|9044) econ0060 econ7230 mgt001371 ecs-323 cs6250 mgdi60012 mdia2012 comm221001 comm5000 ma1008 engl642 econ241 com333 math367 mis201 nbs-7041x meek16104 econ2003 comm1190 mbas902 comp-1027 dpst1091 comp7315 eppd1033 m06 ee3025 msci231 bb113/bbs1063 fc709 comp3425 comp9417 econ42915 cb9101 math1102e chme0017 fc307 mkt60104 5522usst litr1-uc6201.200 ee1102 cosc2803 math39512 omp9727 int2067/int5051 bsb151 mgt253 fc021 babs2202 mis2002s phya21 18-213 cege0012 mdia1002 math38032 mech5125 07 cisc102 mgx3110 cs240 11175 fin3020s eco3420 ictten622 comp9727 cpt111 de114102d mgm320h5s bafi1019 math21112 efim20036 mn-3503 fins5568 110.807 bcpm000028 info6030 bma0092 bcpm0054 math20212 ce335 cs365 cenv6141 ftec5580 math2010 ec3450 comm1170 ecmt1010 csci-ua.0480-003 econ12-200 ib3960 ectb60h3f cs247—assignment tk3163 ics3u ib3j80 comp20008 comp9334 eppd1063 acct2343 cct109 isys1055/3412 math350-real math2014 eec180 stat141b econ2101 msinm014/msing014/msing014b fit2004 comp643 bu1002 cm2030
联系我们
EMail: 99515681@qq.com
QQ: 99515681
留学生作业帮-留学生的知心伴侣!
工作时间:08:00-21:00
python代写
微信客服:codinghelp
站长地图