38K - views

Selection and Insertion Sorts

Steven Haussmann, Garrett Barnes, Shayna Oriold. Challenges of Sorting. Execution time. Memory usage. Stability. Adaptivity. Online capability. Common Sort Types. Bubble sort:. Simple to design. Easy to understand.

Embed :
Presentation Download Link

Download Presentation - The PPT/PDF document "Selection and Insertion Sorts" is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.

Selection and Insertion Sorts






Presentation on theme: "Selection and Insertion Sorts"— Presentation transcript:

Slide1

Selection and Insertion Sorts

Steven Haussmann, Garrett Barnes, Shayna OrioldSlide2

Challenges of Sorting

Execution time

Memory usage

Stability

Adaptivity

Online capabilitySlide3

Common Sort Types

Bubble sort:

Simple to design

Easy to understand

Inefficient-

average time complexity of O(n2)Mergesort:Efficient- time complexity of O(n log(n))ParallelizableRequires O(n) extra memorySlide4

Binary Tree Sort:

Worst case of O(n log(n))

Requires the use of a tree structure

Quicksort:

Similar to binary tree sorts; good efficiency

Unstable- elements with the same key can be rearrangedRelatively complexSlide5

Selection Sort

Time complexity of O(n

2

)

Simple to design

Outperforms some O(n2) algorithms such as bubble sort (but not all)Makes very few writes- only O(n)Slide6
Slide7

Procedure

Break list into sorted and unsorted segments

Find smallest/largest element of unsorted segment

Swap element with leading element of unsorted segment

Leading element is now part of the sorted segmentSlide8

Insertion Sort

Time complexity of O(n

2

)

More efficient than most other quadratic-time sorts

Similar to the selection sortOnlineStableVery efficient for small sample sizesUses very little memoryNatural- people tend to sort using this methodSlide9
Slide10

Procedure

Divide list into sorted and unsorted segments

Iterate through sorted segment with first unsorted element

Place element into correct spot; shift all array elements one slot to the rightSlide11

Utilities

Excellent for real-time sorting

Websites

Slow input

Outperforms O(n log(n)) algorithms (e.g. quicksort) for very small datasets

Maintains stabilityUseful for sorting by two different criteriaName + GPA of studentModel + color of car

Adaptive- handles mostly sorted lists well

Ties into online capabilitiesSlide12

Comparisons:

Execution time

Writes to memory

Data comparisonsSlide13
Slide14
Slide15
Slide16

Comparison

Runtime:

Insertion: O(n

2

)

Selection: O(n2)Writes:Insertion: O(n2)Selection: O(n)Comparisons:

Insertion: O(n

2

)Selection

:

O(n

2

)

Selection Sort:

Slow-read: bad

Slow-write: good

Insertion Sort:

Slow-read: better

Slow-write: bad

Judgement:

Insertion wins out unless writing is expensive