Selection sort Presentation Yixin Wang The Algorithm The big structure of selection sort is looping In each loop, usually we should do two steps. 1. Find the smallest or biggest value in the list. 2. Interchange the smallest or biggest value with the first or last element. Than, loop thought the remaining list and do the same thing. Examples • • • • • 61, 5 , 91, 60,45 5, 61, 91, 60, 45 5, 45, 91, 60, 61 5, 45 ,60, 91, 61 5, 45 ,60 ,61 ,91 Another example • • • • • • 17, 26, 9,50, 76 17, 26, 9 ,50 ,76 17, 26 ,9, 50, 76 17,9 ,26 ,50 ,76 9, 17, 26, 50 ,76 The first two steps don’t make any change but it still loop thought the remaining list. Time complexity • If the number of element in the list is n, then we should loop n-1 times to finish sort all the elements in the list. • From the example we can see that even if the list is already sorted, system still have to loop and do comparison. • So the best case like list : 1 2 3 4 5 …….n-1, n In first loop, it has to do n-1 times comparison. In the second loop n-2 times , third loop n-3. so, the total time complexity is (n-1)+(n-2)+(n-3)+……….+3+2+1 which is equal to (n+(n-1)+(n2)+……+2+1)-1 =n*(n+1)/2 -1 Apparently, the interchange complexity and of this best case is 0 Time complexity cont.…. • The “ worst case” : n, n-1,n-2, ……..3,2,1 The time complexity of the comparison is still n*(n+1)/2 -1 But for interchange time complexity is different. If n is odd, then it has to interchange (n-1)/2 times, if n is even, it has to change n/2 times. The worst case for change complexity : n,1,2,3,4,……n-2,n-1 Time complexity for comparison is n*(n+1)/2 -1 Time complexity for interchange complexity is n-1.(every loop need to change one time) Summary for time complexity • Time complexity for comparison is always n*(n+1)/2 -1 Time complexity for interchange depends. for best case is 0, average is If n is odd, (n-1)/2 times, if n is even, it has to change n/2 times. for worst case is n-1. Extra memory • As we know, each interchange procedure needs one extra memory. So for best case: 1,2,3,……n-1,n needs no extra memory.(no interchange procedure) Worst case : n, 1,2,……n-2,n-1, needs n-1 slot of memory.(n-1 times interchange procedure) • According to the algorithm, data structures selection sort can use are arrays, binary trees, and every kinds of lists. • Stack and queue can not use this algorithm, because these two structures can bot interchange with two element directly.