Download presentation
Presentation is loading. Please wait.
Published byMelissa Dixon Modified over 11 years ago
1
p p Two slow but simple algorithms are Selectionsort and Insertionsort. p p This presentation demonstrates how the two algorithms work. Quadratic Sorting Data Structures and Other Objects Using Java
2
Sorting an Array of Integers p p The picture shows an array of six integers that we want to sort from smallest to largest [0] [1] [2] [3] [4] [5]
3
The Selectionsort Algorithm p p Start by finding the smallest entry. [0] [1] [2] [3] [4] [5]
4
The Selectionsort Algorithm p p Start by finding the smallest entry. p p Swap the smallest entry with the first entry. [0] [1] [2] [3] [4] [5]
5
The Selectionsort Algorithm p p Start by finding the smallest entry. p p Swap the smallest entry with the first entry. [0] [1] [2] [3] [4] [5]
6
The Selectionsort Algorithm p p Part of the array is now sorted. Sorted side Unsorted side [0] [1] [2] [3] [4] [5]
7
The Selectionsort Algorithm p p Find the smallest element in the unsorted side. Sorted side Unsorted side [0] [1] [2] [3] [4] [5]
8
The Selectionsort Algorithm p p Find the smallest element in the unsorted side. p p Swap with the front of the unsorted side. Sorted side Unsorted side [0] [1] [2] [3] [4] [5]
9
The Selectionsort Algorithm p p We have increased the size of the sorted side by one element. Sorted side Unsorted side [0] [1] [2] [3] [4] [5]
10
The Selectionsort Algorithm p p The process continues... Sorted side Unsorted side Smallest from unsorted Smallest from unsorted [0] [1] [2] [3] [4] [5]
11
The Selectionsort Algorithm p p The process continues... Sorted side Unsorted side [0] [1] [2] [3] [4] [5] Swap with front Swap with front
12
The Selectionsort Algorithm p p The process continues... Sorted side Unsorted side Sorted side is bigger Sorted side is bigger [0] [1] [2] [3] [4] [5]
13
The Selectionsort Algorithm p p The process keeps adding one more number to the sorted side. p p The sorted side has the smallest numbers, arranged from small to large. Sorted side Unsorted side [0] [1] [2] [3] [4] [5]
14
The Selectionsort Algorithm p p We can stop when the unsorted side has just one number, since that number must be the largest number. [0] [1] [2] [3] [4] [5] Sorted side Unsorted side
15
The Selectionsort Algorithm p p The array is now sorted. p p We repeatedly selected the smallest element, and moved this element to the front of the unsorted side. [0] [1] [2] [3] [4] [5]
16
The Insertionsort Algorithm p p The Insertionsort algorithm also views the array as having a sorted side and an unsorted side. [0] [1] [2] [3] [4] [5]
17
The Insertionsort Algorithm p p The sorted side starts with just the first element, which is not necessarily the smallest element. [0] [1] [2] [3] [4] [5] Sorted side Unsorted side
18
The Insertionsort Algorithm p p The sorted side grows by taking the front element from the unsorted side... [0] [1] [2] [3] [4] [5] Sorted side Unsorted side
19
The Insertionsort Algorithm p p...and inserting it in the place that keeps the sorted side arranged from small to large. [0] [1] [2] [3] [4] [5] Sorted side Unsorted side
20
The Insertionsort Algorithm p p In this example, the new element goes in front of the element that was already in the sorted side. [0] [1] [2] [3] [4] [5] Sorted side Unsorted side
21
The Insertionsort Algorithm p p Sometimes we are lucky and the new inserted item doesn't need to move at all. [0] [1] [2] [3] [4] [5] Sorted side Unsorted side
22
The Insertionsort Algorithm p p Sometimes we are lucky twice in a row. [0] [1] [2] [3] [4] [5] Sorted side Unsorted side
23
How to Insert One Element ¶ ¶ Copy the new element to a separate location. [0] [1] [2] [3] [4] [5] Sorted side Unsorted side
24
How to Insert One Element · · Shift elements in the sorted side, creating an open space for the new element. [0] [1] [2] [3] [4] [5]
25
How to Insert One Element · · Shift elements in the sorted side, creating an open space for the new element. [0] [1] [2] [3] [4] [5]
26
How to Insert One Element · · Continue shifting elements... [0] [1] [2] [3] [4] [5]
27
How to Insert One Element · · Continue shifting elements... [0] [1] [2] [3] [4] [5]
28
How to Insert One Element · ·...until you reach the location for the new element. [0] [1] [2] [3] [4] [5]
29
How to Insert One Element ¸ ¸ Copy the new element back into the array, at the correct location. [0] [1] [2] [3] [4] [5] Sorted side Unsorted side
30
How to Insert One Element p The last element must also be inserted. Start by copying it... [0] [1] [2] [3] [4] [5] Sorted side Unsorted side
31
Merge Sort 7744996633588822 7744996633588822 77449966 33588822 7744996633588822 44776699 33582288 4466779922335888 2223445567778899
32
A Quiz How many shifts will occur before we copy this element back into the array? [0] [1] [2] [3] [4] [5]
33
A Quiz p Four items are shifted. [0] [1] [2] [3] [4] [5]
34
A Quiz p Four items are shifted. p And then the element is copied back into the array. [0] [1] [2] [3] [4] [5]
35
p p Both Selectionsort and Insertionsort have a worst- case time of O(n 2 ), making them impractical for large arrays. p p But they are easy to program, easy to debug. p p Insertionsort also has good performance when the array is nearly sorted to begin with. p p But more sophisticated sorting algorithms are needed when good performance is needed in all cases for large arrays. Timing and Other Issues
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.