Upload
dylan-mitchell
View
217
Download
1
Tags:
Embed Size (px)
Citation preview
CS1020 Data Structures and Algorithms ILecture Note #14
Wrapping Up
Outline
2[CS1020 Lecture 14: Wrapping Up]
1. Past Years’ Exam Questions
2. Exam Matters
3. Announcements
1 Past Years’ Exam Questions
1 AY2013/4 Semester 2 We will discuss questions 1 to 8 here
For the rest, please discuss on the IVLE forum Note that exam answers are not released
4[CS1020 Lecture 14: Wrapping Up]
ArrayList<Integer> arr = new ArrayList<Integer>();
for (int i=0; i<10; i++)arr.add(i);
for (int i=0; i<arr.size()/2; i++) arr.add(i, arr.remove(arr.size()-1-i));
System.out.println(arr);
(A) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9](B) [9, 8, 7, 6, 5, 4, 3, 2, 1, 0](C) [9, 7, 5, 3, 1, 0, 2, 4, 6, 8](D) [9, 7, 5, 3, 1, 8, 6, 4, 2, 0](E) [9, 0, 8, 1, 7, 2, 6, 3, 5, 4]
Q1
1 AY2013/4 Semester 2 Q2. Calling recurse(12);
5[CS1020 Lecture 14: Wrapping Up]
public static void recurse(int n) {System.out.println("The number is " + n);if (n-- > 0) {
recurse(n--);}
}
(A) 5(B) 6(C) 7(D) 12(E) None of the above.
1 AY2013/4 Semester 2 Q3. How many integers in s can also be found in q?
6[CS1020 Lecture 14: Wrapping Up]
int[] array = new int[] {1,2,3,4,5};
Stack<Integer> s = new Stack<Integer>();for (int i: array) {
s.push(i);if (i%2 == 0) s.pop();
}
Queue<Integer> q = new LinkedList<Integer>();for (int i: array) {
q.offer(i);if (i%2 == 0) q.poll();
}
(A) 0(B) 1(C) 2(D) 3(E) 4
1 AY2013/4 Semester 2 Q4. Result of first partitioning:
7[CS1020 Lecture 14: Wrapping Up]
2, 5, 3, 7, 9, 15, 20, 18, 25, 30, 10
(A) 3(B) 4(C) 5(D) 6(E) None of the above.
How many possible integers among the elements could be the pivot?
1 AY2013/4 Semester 2 Q5. Shift elements in an n×n matrix by a shift amount.
8[CS1020 Lecture 14: Wrapping Up]
(A) (r*numCols + c + shiftAmt);(B) (r*numCols + c + shiftAmt) % numRows;(C) (r*numCols + c + shiftAmt) % numCols;(D) (r*numCols + c + shiftAmt) % (numRows*numCols);(E) None of the above.
Shift 3
1211109
8765
4321
arr
9876
5432
1121110
newArr
int[][] newArr = new int[arr.length][arr[0].length];int index, numRows = arr.length, numCols = arr[0].length;for (int r = 0; r < numRows; r++) {for (int c = 0; c < numCols; c++) {
index =
newArr[index/numCols][index%numCols] = arr[r][c];}
}
1 AY2013/4 Semester 2 Q6. Which of the following statements is true?
9[CS1020 Lecture 14: Wrapping Up]
(A) Quadratic probing may avoid the clustering problem completely.
(B) A perfect hash function must distribute the keys evenly in the hash table.
(C) It is effective (i.e. there are fewer collisions) to use direct addressing table when the keys are not dense.
(D) The probe sequence of modified linear probing covers all positions in a hash table.
(E) None of the above.
1 AY2013/4 Semester 2 Q7. searchAndSwitch(E item)
If item found not in the last node, return true and switch node containing item with its next node;
If item not found or item found is last node, return false.
10[CS1020 Lecture 14: Wrapping Up]
Example: [Abe, Gigi, Flora, Andy, Jack, Zoe]
After calling searchAndSwich(“Andy”):[Abe, Gigi, Flora, Jack, Andy, Zoe]
General case:… …
currprev next
Special case: node found is first node of list
…
curr next
head
1 AY2013/4 Semester 2
11[CS1020 Lecture 14: Wrapping Up]
public boolean searchAndSwitch(E item) {ListNode <E> curr = head;ListNode <E> prev = null;while (curr != null &&
!curr.getElement().equals(item)) {prev = curr;curr = curr.getNext();
}
return true; }
Special case: node found is first node of list
…
curr next
head
General case:
… …
currprev next
Let’s label the vertices of the given polygon v0 to vn-1, where n is the number of vertices, as shown in the diagrams above.
1 AY2013/4 Semester 2 Q8. triangulate()
Triangulation: to split a convex polygon into a number of triangles Triangulate a MyPolygon object into an ArrayList of triangles
12[CS1020 Lecture 14: Wrapping Up]
v0
v1
v2v3
v4
v0
v1
v2 v3
v4
v5
v6
v7
1 AY2013/4 Semester 2
13[CS1020 Lecture 14: Wrapping Up]
import java.awt.Point;import java.util.ArrayList; class MyPolygon {
private int size; // number of verticesprivate ArrayList<Point> vertices;
public MyPolygon(int num, ArrayList<Point> pts) {
size = num;vertices = new ArrayList<Point>(pts);
}
// Other methods not shown as they are not required// for this question
}
v0
v1
v2v3
v4v0
v1
v2 v3
v4
v5
v6
v7
1 AY2013/4 Semester 2
14[CS1020 Lecture 14: Wrapping Up]
public ArrayList<MyPolygon> Triangulate() {ArrayList<MyPolygon> triangles;
return triangles; }
1 AY2013/4 Semester 2
15[CS1020 Lecture 14: Wrapping Up]
public ArrayList<MyPolygon> Triangulate() {ArrayList<MyPolygon> triangles;
return triangles; }
v0
v1
v2v3
v4v0
v1
v2 v3
v4
v5
v6
v7
Alternative solution
2 Exam Matters
2 CS1020 Objectives (1/2) Give an introduction to OO Programming (OOP)
Model using Java programming language, linear data structures, and algorithms for constructing efficient programs.
Emphasize on data abstraction issues (through ADTs) in the code development.
Emphasize on efficient implementations of chosen data structures and algorithms.
17[CS1020 Lecture 14: Wrapping Up]
2 CS1020 Objectives (2/2) Linear data structures include arrays, lists,
stacks, queues, and hash tables; together with their algorithms (insert, delete, find, and updates).
Simple algorithmic paradigms, such as sorting and search algorithms, and divide-and-conquer algorithms were introduced.
Recursion and elementary analysis of algorithms were taught.
18[CS1020 Lecture 14: Wrapping Up]
2 Final Exam (1/2)
Date: 4 May 2015, Monday Time: 5 – 7pm Venue: To be announced by Registrar’s Office Weightage: 40% (see http://www.comp.nus.edu.sg/~
cs1020/1_module_info/desc.html for details)
Scope: Everything covered in lectures, tutorials and labs 30%: Materials up to and including Exceptions
(tested in mid-term) 70%: Materials after Exceptions
19[CS1020 Lecture 14: Wrapping Up]
2 Final Exam (2/2) Format:
Section A (18 marks): 6 MCQs Section B (62 marks): 7 questions
Closed book. You are allowed to bring in one A4 handwritten reference sheet.
Calculators NOT allowed. You may use pencil to write your answers. Read through all questions first before
answering them. Refer to CS1020 website, “Exams” page:
http://www.comp.nus.edu.sg/~cs1020/3_ca/exams.html
20[CS1020 Lecture 14: Wrapping Up]
3 Announcements
3 Announcements Our consultations hours are given on the IVLE
announcement Please check out the IVLE as we will still be
making announcements We will post your CA marks for your checking Please check your CA marks and report any
discrepancy before the stated deadline
22[CS1020 Lecture 14: Wrapping Up]
23[CS1020 Lecture 14: Wrapping Up]
End of file