Sorting Algorithms n 2 Sorts ◦Selection Sort ◦Insertion Sort ◦Bubble Sort Better Sorts...

Click here to load reader

  • date post

    18-Dec-2015
  • Category

    Documents

  • view

    238
  • download

    1

Embed Size (px)

Transcript of Sorting Algorithms n 2 Sorts ◦Selection Sort ◦Insertion Sort ◦Bubble Sort Better Sorts...

  • Slide 1
  • Sorting Algorithms n 2 Sorts Selection Sort Insertion Sort Bubble Sort Better Sorts Merge Sort Quick Sort Radix Sort
  • Slide 2
  • Radix Sort Sorts all values as Strings Loop thru the Strings backwards, arranging Stings in sets based on the character being compared. Reload the array from the sets.
  • Slide 3
  • weiner, bankemper, caldwell, goldston, rechtin, rhein, rust, walters, whelan { weiner, caldwell, goldston, rechtin, rhein, rust, walters, whelan } { bankemper } weiner, caldwell, goldston, rechtin, rhein, rust, walters, whelan, bankemper { weiner, rechtin, rhein, rust, walters, whelan } { bankemper } { caldwell } { goldston } weiner, rechtin, rhein, rust, walters, whelan, bankemper, caldwell, goldston { weiner, rhein, rust, whelan } { caldwell } { rechtin } { goldston } { bankemper } { walters } weiner, rhein, rust, whelan, caldwell, rechtin, goldston, bankemper, walters
  • Slide 4
  • { rhein, rust } { caldwell } { rechtin } { bankemper } { whelan } { weiner, walters } { goldston } rhein, rust, caldwell, rechtin, bankemper, whelan, weiner, walters, goldston { rust } { whelan} { bankemper, weiner, walters } { rhein } { goldston } { rechtin } { caldwell } rust, whelan, bankemper, weiner, walters, rhein, goldston, rechtin, caldwell
  • Slide 5
  • { goldston, caldwell } { rechtin } { rhein } { bankemper } { whelan } { weiner } { rust, walters } goldston, caldwell, rechtin, rhein, bankemper, whelan, weiner, rust, walters { rechtin } { rhein, whelan } { weiner } { goldston, caldwell, walters } { bankemper } { rust } rechtin, rhein, whelan, weiner, goldston, caldwell, walters, bankemper, rust
  • Slide 6
  • { caldwell, walters, bankemper } { rechtin, weiner } { rhein, whelan } { goldston } { rust } caldwell, walters, bankemper, rechtin, weiner, rhein, whelan, goldston, rust { bankemper } { caldwell } { goldston } { rechtin, rhein, rust } { walters, weiner, whelan } bankemper, caldwell, goldston, rechtin, rhein, rust, walters, weiner, whelan
  • Slide 7
  • Merge Sort One of the Divide-And-Conquer algorithms Split the array in half, sort each half, then merge the two halves together. The trick is to call it recursively, splitting the array in half each time, until you get one element in each half, then merge them into proper sequence.
  • Slide 8
  • 69, 68, 19, 84, 60, 1, 23, 35, 10, 37, 16 69, 68, 19, 84, 60, 123, 35, 10, 37, 16 69, 68, 1984, 60, 1 69, 6819 23, 35, 1037, 16 84, 60123, 35103716 6968 84602335 68, 691960, 84123, 35103716 19, 68, 691, 60, 8410, 23, 3516, 37 1, 19, 60, 68, 69, 8410, 16, 23, 35, 37 1, 10, 16, 19, 23, 35, 37, 60, 68, 69, 84
  • Slide 9
  • Merge Sort Algorithm Find the mid-point of the array I'm responsible for. Mergesort the low half of the array. Mergesort the high half of the array. Merge the two halves back together.
  • Slide 10
  • Merge Algorithm Starting from the first element of each array section, find the lowest of the two values, and move it to the final position. Incrementing the pointer in the array section that just lost a value, find the new lowest of the two, and move it. When all of the values in one array section have been moved, move all the remaining values in the other section.
  • Slide 11
  • Quicksort Another Divide-And-Conquer algorithm. Generally considered to be the fastest sorting algorithm available, but... Average cases are O(n log n) Two cases move it towards O(n 2 ) Small n When list is already close to sorted.
  • Slide 12
  • Quicksort Algorithm 1. Partition the portion of the array I'm responsible for. 2. Quicksort the low part of the array. 3. Quicksort the high part of the array.
  • Slide 13
  • Partition Algorithm Select a Pivot value. Move up the array, stopping at the first value greater than the Pivot value. Move down the array, stopping at the first value less than the Pivot value. Swap the two values. Repeat until the counter moving up the array crosses the counter moving down the array. Finally, swap the pivot value with the value at the down counter. By the time you're done, all the values than Pivot are in the right part of the array.
  • Slide 14
  • A Partition Visualization 696819846012335103716
  • Slide 15
  • A Partition Visualization 696819846012335103716 Pivot Value = 37
  • Slide 16
  • A Partition Visualization 696819846012335103716 Pivot Value = 37
  • Slide 17
  • A Partition Visualization 696819846012335103716 Pivot Value = 37
  • Slide 18
  • A Partition Visualization 696819846012335103716 Pivot Value = 37
  • Slide 19
  • A Partition Visualization 696819846012335103716 Pivot Value = 37
  • Slide 20
  • A Partition Visualization 696819846012335103716 Pivot Value = 37
  • Slide 21
  • A Partition Visualization 696819846012335103716 Pivot Value = 37
  • Slide 22
  • A Partition Visualization 696819846012335103716 Pivot Value = 37
  • Slide 23
  • A Partition Visualization 696819846012335103716 Pivot Value = 37
  • Slide 24
  • A Partition Visualization 696819846012335103716 Pivot Value = 37
  • Slide 25
  • A Partition Visualization 696819846012335103716 Pivot Value = 37
  • Slide 26
  • A Partition Visualization 696819846012335103716 Pivot Value = 37
  • Slide 27
  • A Partition Visualization 696819846012335103716 Pivot Value = 37
  • Slide 28
  • A Partition Visualization 696819846012335103716 Pivot Value = 37
  • Slide 29
  • A Partition Visualization 696819846012335103716 Pivot Value = 37
  • Slide 30
  • A Partition Visualization 696819846012335103716 Pivot Value = 37
  • Slide 31
  • A Partition Visualization 696819846012335103716 Pivot Value = 37
  • Slide 32
  • A Partition Visualization 696819846012335103716 Pivot Value = 37
  • Slide 33
  • Comparison of Sorting Algorithms