Presentation is loading. Please wait.

Presentation is loading. Please wait.

Manipulating lists of data

Similar presentations


Presentation on theme: "Manipulating lists of data"— Presentation transcript:

1 Manipulating lists of data
Searching & Sorting Manipulating lists of data for quick retrieval

2 Common Problems There are some very common problems that computers are asked to solve: Searching through a lot of records for a specific record. Who uses this ? Airlines Companies that take phone orders Credit Card Companies ... almost any company

3 Searching Does this search have to be fast ?
How can we make the search faster ? By keeping the records in some order By using an efficient search algorithm Search algorithms Sequential search Binary search

4 Sequential Search on an Unordered File
Get the search criterion from the user Get the first record from the file While the record doesn’t match the criterion && there are still more records in the file get the next record When do we know that there wasn’t a record in the file that matched.

5 Sequential Search of an Ordered File
Get the search criterion from the user Get the first record from the file While the record is less than the criterion get the next record If the record matches the criterion then success else there is no match in the file. When do we know that there wasn’t a record in the file that matched ?

6 Sequential Search of Ordered vs. Unordered List
If the order was ascending alphabetical on customer’s last names, how would the search for John Adams on the ordered list compare to the search on the unordered list if John Adams was in the list ? if John Adams was not in the list ?

7 Ordered vs Unordered (continued)
How about George Washington ? unordered in the file not in the file ordered James Madison ?

8 More Searching Overall, we don’t really see much improvement if we’re using the sequential search. Maybe we need a better search algorithm. How else could we search an ordered file ?

9 Binary Search If we have an ordered list and we know how many things are in the list (i.e. # of records in a file), we can use a different strategy. Binary Search gets it’s name, because we are always going to divide things into two parts.

10 How Binary Search Works
Always look at the center value. Each time you get to get to discard half of the remaining list. Is this fast ?

11 How fast is Binary Search ?
Worst case : 11 Items in the list took 4 tries How about a list with 32 items ? 1st try - list has 16 items 2nd try - list has 8 items 3rd try - list has 4 items 4th try - list has 2 items 5th try - list has 1 item

12 More examples List has 512 items List has 250 items
1st try items 2nd try items 3rd try - 64 items 4th try - 32 items 5th try - 16 items 6th try - 8 items 7th try - 4 items 8th try - 2 items 9th try - 1 item List has 250 items 1st try items 2nd try - 63 items 3rd try - 32 items 4th try - 16 items 5th try - 8 items 6th try - 4 items 7th try - 2 items 8th try - 1 item

13 What’s the pattern ? List of 11 took 4 tries List of 32 took 5 tries
32 = 25 and 512 = 29 8 < 11 < < 11 < 24 128 < 250 < < 250 < 28

14 The fastest ! How long (worst case) will it take to find an item in a list 30,000 items long ? 210 = = 8192 211 = = 16384 212 = = 32768 So it will take 15 tries. It only takes 15 tries to find what we want out of 30,000 items - that’s awesome !!!

15 Lg n We say that the binary search algorithm runs in lg n time.
Lg n means the log to the base 2 of some value of n 8 = lg 8 = 3 16 = lg 16 = 4 There are no algorithms that run faster than lg n time.

16 Searching and Sorting (continued)
We have a very fast search algorithm - Binary search But, the list has to be sorted, before we can search it with binary search. To be really efficient, we also need a fast sort algorithm.

17 Some Sort Algorithms Bubble Sort Heap Sort Selection Sort Merge Sort
Insertion Sort Quick Sort In an effort to find a very fast sorting algorithm, we have many known sorting algorithms. Bubble sort is the slowest, running in n2 time. Too slow !

18 Speed of Sorting Algorithms
Most Sorting algorithms run in n lg n time for the worst case. Quick Sort runs a little faster for the average case. So it is usually the sort that’s used. The algorithm for Quick Sort is quite complicated. It is shown in your book. There is a pre-written function called qsort in the C standard library.

19 Bubble Sort void BubbleSort (int a[ ] , int size) { int i, j, temp;
for (i = 0; i < size; i++) for (j = 0; j < size - 1; j++) if (a[j] > a[j+1]) temp = a[j]; a[j] = a[j + 1]; a[j+1] = temp; }

20 Insertion Sort Insertion sort is slower than quick sort, but not as slow as bubble sort, and it is easy to understand Insertion sort works the same way as arranging your hand when playing cards. Out of the pile of unsorted cards that were dealt to you, you pick up a card and place it in your hand in the correct position relative to the cards you’re already holding.

21 Arranging Your Hand 7 5 7

22 Arranging Your Hand 5 7 5 6 7 5 6 7 K 5 6 7 8 K

23 Insertion Sort Unsorted - shaded 7 K 1 7 5 v 7 5 7 > 2 5 7 3 <
Look at 2nd item - 5 Compare 5 to 7 5 is smaller, so move to temp, leaving an empty slot in position 2 Move 7 into the empty slot, leaving position 1 open Move 5 into the open position 1 7 5 v 7 5 7 > 2 5 7 3 <

24 Insertion Sort Look at next item - 6 5 7 6 K 1 5 7 v 5 7 6 5 7 > 2
Compare to 1st - 5 6 is larger, so leave Compare to next - 7, is smaller, so move to temp, leaving an empty slot Move 7 into the empty slot, leaving position 2 open Move 6 to the open 2nd position 1 5 7 v 5 7 6 5 7 > 2 5 6 7 3 <

25 Insertion Sort Look at next item - King 5 6 7 K Compare to 1st - 5
King is larger, so leave 5 where it is Compare to next - 6, King is larger, so leave 6 where it is Compare to next King is larger, so leave 7 where it is

26 Insertion Sort 5 6 7 K 8 1 5 6 7 K 8 v 5 6 7 K 8 5 6 7 K > 2 5 6 7
3 <

27 Courses at UMBC Algorithms - CMSC 441 Cryptology - CMSC 443
Studies algorithms and their speed Cryptology - CMSC 443 The study of making & breaking codes - write programs that can break the code like Pdeo eo pda yknnayp wjosan


Download ppt "Manipulating lists of data"

Similar presentations


Ads by Google