# Sorting - ?· Sorting •Selection sort •Insertion sort •Bubble sort •Heap sort •Merge sort…

• Published on
27-May-2019

• View
212

• Download
0

Embed Size (px)

Transcript

11/19/2018

Data Structure & Algorithm

1

Sorting

Sorting

Selection sort

Insertion sort

Bubble sort

Heap sort

Merge sort

Quick sort

Bucket sort

2

Selection Sort

3

(textbook)

Selection Sort

4

https://www.khanacademy.org/computing/computer-science/algorithms/sorting-algorithms/a/selection-sort-pseudocode

practice: write the pseudocode for selection sort

Selection Sort

5

i = 0while i < length(A) - 1

min_index = ij = i + 1while j < length(A)

if A[min_index] > A[j]min_index = j

end ifj ++

end while

int tmp = A[min_index]A[min_index] = A[i]A[i] = tmpi ++

end while

Selection Sort

6

Insertion Sort

7

https://www.geeksforgeeks.org/insertion-sort/

Insertion Sorting

8

https://en.wikipedia.org/wiki/Insertion_sort

Bubble Sort

bubbleSort(A):

while true do

swapped = false

for i = 1 to n-1 inclusive do

if A[i-1] > A[i] then

swap( A[i-1], A[i] )

swapped = true

end if

end for

n = n - 1

until not swapped

9

https://en.wikipedia.org/wiki/Bubble_sort

Bubble Sort

10

Heap Sort

1. Build a max heap from an array

2. Remove the first element of the heap and put it to the end of the array.

3. Do the second step until the heap is empty

11

leftchild(i) = 2i + 1

rightchild(i) = 2i + 2

parent(i) = floor((i-1)/2)

Heap Sort - Heapify

heapify(a, start, end):

root = start

while leftchild(root)

Heap Sort - buildheap

buildheap(a, count): // a is the array, count is the length

start = parent(count-1)

while start >= 0 do

heapify(a, start, count 1)

start --

13

Heap Sort

14

Merge Sort

Divide-and-Conquer

1. Divide: if the input size is smaller than a certain threshold, solve the problem directly using a straightforward method and return the solution so obtained. Otherwise, divide the input data into two or more disjoint subsets

2. Conquer: Recursively solve the subproblems associated with the subsets

3. Combine: Take the solutions to the subproblems

15

Merge Sort

16

Merge Sort

17

Merge Sort

18

Quick Sort

19

Quick Sort

Textbook: Sec. 12.2, P. 549

20

Bubble Sort

21

Assignment 11

GitHub: https://classroom.github.com/a/cQWGbG5-

22

https://classroom.github.com/a/cQWGbG5-