Download presentation
Presentation is loading. Please wait.
2
Data Structures & Algorithms
3
What The Course Is About s Data structures is concerned with the representation and manipulation of data. s All programs manipulate data. s So, all programs represent data in some way. s Data manipulation requires an algorithm.
4
What The Course Is About We shall study ways to represent data and algorithms to manipulate these representations. The study of data structures is fundamental to Computer Science & Engineering.
5
Functions of Data Structures s Add –Index –Key –Position –Priority s Get s Change s Delete
6
Common Data Structures s Array s Stack s Queue s Linked List s Tree s Heap s Hash Table s Priority Queue
7
How many Algorithms? s Countless
8
Algorithm Strategies s Greedy s Divide and Conquer s Dynamic Programming s Exhaustive Search s Approximation Algorithms s Randomized Algorithms
9
Which Data Structure or Algorithm is better? s Must Meet Requirement s High Performance s Low RAM footprint s Easy to implement –Encapsulated
10
Prerequisites s Asymptotic Complexity Big Oh, Theta, and Omega notations sCsC
11
Web Site s programming.im.ncnu.edu.tw s 管 5047 s Handouts, syllabus, text, source codes, exercise solutions, lectures, assignments, past exams, past exam solutions, TAs, etc.
12
Assignments s Moodle.ncnu.edu.tw s Assignment guidelines
13
Sorting s Rearrange a[0], a[1], …, a[n-1] into ascending order. When done, a[0] <= a[1] <= … <= a[n-1] s 8, 6, 9, 4, 3 => 3, 4, 6, 8, 9
14
Sort Methods s Insertion Sort s Bubble Sort s Selection Sort s Count Sort s Shaker Sort s Shell Sort s Heap Sort s Merge Sort s Quick Sort
15
Insert An Element s Given a sorted list/sequence, insert a new element s Given 3, 6, 9, 14 s Insert 5 s Result 3, 5, 6, 9, 14
16
Insert an Element s 3, 6, 9, 14 insert 5 s Compare new element (5) and last one (14) s Shift 14 right to get 3, 6, 9,, 14 s Shift 9 right to get 3, 6,, 9, 14 s Shift 6 right to get 3,, 6, 9, 14 s Insert 5 to get 3, 5, 6, 9, 14
17
Insert An Element /* insert t into a[0:i-1] */ int j; for (j = i - 1; j >= 0 && t < a[j]; j--) a[j + 1] = a[j]; a[j + 1] = t;
18
Insertion Sort s Start with a sequence of size 1 s Repeatedly insert remaining elements
19
Insertion Sort s Sort 7, 3, 5, 6, 1 s Start with 7 and insert 3 => 3, 7 s Insert 5 => 3, 5, 7 s Insert 6 => 3, 5, 6, 7 s Insert 1 => 1, 3, 5, 6, 7
20
Insertion Sort for (i = 1; i < n; i++) {/* insert a[i] into a[0:i-1] */ /* code to insert comes here */ }
21
Insertion Sort for (i = 1; i < n; i++) {/* insert a[i] into a[0:i-1] */ int t = a[i]; int j; for (j = i - 1; j >= 0 && t < a[j]; j--) a[j + 1] = a[j]; a[j + 1] = t; }
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.