Lesson 2 Starter Look at the hand out you have been given. Can you sort the numbers into ascending order. What mental or physical methods did you use to sort them? Algorithms - Sorting Sorting algorithms are very frequently used in programming. There are many situations in which data needs to be sorted. There are many different sorting algorithms out there that have different level of efficiencies. Some example of sorts: Bubble Selection Insertion Quick VIDEO – Sorting.mp4 Algorithms - Sorting Bubble Sort Algorithm for bubble sort count1 = length of list count2 = length of list -1 FOR 1 to count1 FOR 1 to count2 IF list[count2] > list[count2+1] THEN temp = list[count2] list[count2] = list[count2+1] list[count2+1] = temp ENDIF ENDFOR ENDFOR Algorithms - Sorting Bubble Sort 6 2 1 3 2 1 4 0 1 3 2 6 1 3 2 1 4 0 1 3 2 1 6 3 2 1 4 0 1 3 2 1 3 6 2 1 4 0 1 3 2 1 3 2 6 1 4 0 1 3 2 1 3 2 1 6 4 0 1 3 2 1 3 2 1 4 6 0 1 3 2 1 3 2 1 4 0 6 1 3 2 1 3 2 1 4 0 1 6 3 2 1 3 2 1 4 0 1 3 6 Key Sorted list Items being swapped Algorithms - Sorting Bubble Sort 1 2 3 2 1 4 0 1 3 6 1 2 2 3 1 4 0 1 3 6 1 2 2 1 3 4 0 1 3 6 1 2 2 1 3 0 4 1 3 6 1 2 2 1 3 0 1 4 3 6 1 2 2 1 3 0 1 3 4 6 1 2 2 1 3 0 1 3 4 6 Key Sorted list Items being swapped Etc....... Using your numbers – use the bubble sort method to sort your numbers Algorithms - Sorting Selection sort Algorithm for selection sort minimum = 99999999 count1 = length of list count2 = length of list positionofminimum = 1 FOR 1 to count1 FOR 1 to count2 IF list(count2) < minimum THEN minimum = list(count2) positionofminimum = count2 ENDIF ENDFOR temp = list(count1) list(count1) = list(positionofminimum) list(positionofminimum) = temp END FOR Algorithms – Sorting Selection 6 2 1 3 2 1 4 0 1 3 0 2 1 3 2 1 4 6 1 3 0 1 2 3 2 1 4 6 1 3 0 1 1 3 2 2 4 6 1 3 0 1 1 1 2 2 4 6 3 3 0 1 1 1 2 2 4 6 3 3 0 1 1 1 2 2 4 6 3 3 0 1 1 1 2 2 3 6 4 3 0 1 1 1 2 2 3 3 4 6 0 1 1 1 2 2 3 3 4 6 Key Sorted list Items being swapped Using your numbers – use the selection sort method to sort your numbers Algorithms – Sorting Insertion Sort Algorithm for insertion sort FOR every item in list Sort into new list by inserting it into correct place, one item at a time. END FOR Algorithms – Sorting Insertion Sort 6 2 1 3 2 1 4 0 1 3 2 6 1 3 2 1 4 0 1 3 1 2 6 3 2 1 4 0 1 3 1 2 3 6 2 1 4 0 1 3 1 2 2 3 6 1 4 0 1 3 1 1 2 2 3 6 4 0 1 3 1 1 2 2 3 4 6 0 1 3 0 1 1 2 2 3 4 6 1 3 0 1 1 1 2 2 3 4 6 3 0 1 1 1 2 2 3 3 4 6 Key Sorted list Using your numbers – use the insertion sort method to sort your numbers Algorithms - Sorting Look at these examples of how different algorithms can change the speed of the sorting Link 1 – CLICK HERE http://www.sorting-algorithms.com/ Link 2 – CLICK HERE http://www.cs.ubc.ca/~harrison/Java/sorting-demo.html Algorithms - Sorting Task With a bit of research – compare and contrast the bubble sort, insertion sort, selection sort and Quick sort. Ask yourself the following questions 1) 2) 3) 4) Can you describe how each one works? What is difference between them? Which one is the most efficient? Why do you think one is more efficient than another – what makes is more efficient?