Presentation is loading. Please wait.

Presentation is loading. Please wait.

Data Structures & Algorithms What The Course Is About s Data structures is concerned with the representation and manipulation of data. s All programs.

Similar presentations


Presentation on theme: "Data Structures & Algorithms What The Course Is About s Data structures is concerned with the representation and manipulation of data. s All programs."— Presentation transcript:

1

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; }


Download ppt "Data Structures & Algorithms What The Course Is About s Data structures is concerned with the representation and manipulation of data. s All programs."

Similar presentations


Ads by Google