1 / 19

Intro to Sorting

Intro to Sorting. Intro to Computer Science CS1510 Dr. Sarah Diesburg. Last Time. We looked at two basic algorithms for searching Linear search Binary search Linear search was the easiest to write But perhaps not the best from a complexity standpoint. Last Time.

ono
Download Presentation

Intro to Sorting

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Intro to Sorting Intro to Computer Science CS1510 Dr. Sarah Diesburg

  2. Last Time • We looked at two basic algorithms for searching • Linear search • Binary search • Linear search was the easiest to write • But perhaps not the best from a complexity standpoint

  3. Last Time • Big “O” measures how badly the problem grows as the data set grows • Study of complexity of algorithms • Worst case of linear search was N, where N is the number of comparisons that we need to perform • Double the number of items in list, double the amount of time needed to complete the search in the worst case

  4. Last Time • The binary search was another solution that incurred less comparisons in the worst case • Only works on sorted list

  5. Binary Search • Binary search algorithm • Try the guess at middle index of the range • If the value we are searching for is higher than number at the index, then adjust your low range bound to be your guess+1 • If the value we are searching for is lower than number at the index, then adjust your high range bound to be your guess-1 • Repeat

  6. Binary Search • What is the worst-case scenario of the binary search? • Thinking of a number between 1 and 100 • 7 guesses in total – why? • 1 guesses – cut down to 50 possibilities • 2 guesses – cut down to 25 • 3 guesses – cut down to 12 • 4 guesses – cut down to 6 • 5 guesses – cut down to 3 • 6 guesses – cut down to 1 • 7 guesses – to figure out if last guess is right

  7. Binary Search • What is the complexity of a binary search? • Big O value of log2 N • This is “log base 2” • log2(100) = x • What is this saying?

  8. Binary Search • What is the complexity of a binary search? • Big O value of log2 N • This is “log base 2” • log2(100) = x • What is this saying? • 2x = 100 • Go “to the next power” when not exact

  9. Binary Search • How does that relate to our binary search? • Let’s say there are 16 items in our list. What is the worst case number of guesses? 32? 34? 64? One million?

  10. Binary Search • How does that relate to our binary search? • Let’s say there are 16 items in our list. What is the worst case number of guesses? 32? 34? 64? One million? • One million is about 20 guesses • 2^10 = 1024 • One million is 1000 squared, so twice as much

  11. Searching • So which kind of search would amazon.com use to search their databases?

  12. Demo • binarySearch() on different types of lists • Ordered • Odd • Reverse

  13. Demo • binarySearch() on different types of lists • Ordered • Odd • Reverse • The reverse list doesn’t work because the list needs to be sorted in ascending order. • How do we sort?

  14. Group Time! • Let’s get into 4 big groups • Put the cards in order • You can only look at two cards at a time

  15. Sorting Methods • Insertion Sort • Two chunks of data (sorted and unsorted) • Go through unsorted data and insert it in order into sorted pile • As humans, if we could look at all cards at once, we would probably perform an insertion sort

  16. Sorting Methods • Bubble Sort • Compare two cards • Move the higher card to the top • Pick out another card • Repeat • Higher cards “bubble” to the top • After each run, one more high card is in order • Lower cards slowly “bubble” to the bottom

  17. Sorting Methods • Selection Sort • Find smallest card by • Comparing two cards at a time • Saving out the current smallest card • Repeat until reach end of pile • Put smallest card in sorted pile • Repeat

  18. Sorting • Humans will tend to want to fan out all the cards and scan them • With 13 cards, this works • But what if I gave you 10,000 student ID cards? • Computers can only compare a finite number of cards together at a time • Let’s start to think about how long each of these will take in the worst case

  19. Big O (Worst Case) • Selection sort • First pass – compare 13 cards and set aside lowest • Second pass – compare 12 cards and set aside lowest • Etc…. • How many passes do I make? – 13 • N^2 = 169 but actually 91 • As you double your data, you quadruple your time.

More Related