• No results found

Quick Sort. Implementation

N/A
N/A
Protected

Academic year: 2021

Share "Quick Sort. Implementation"

Copied!
45
0
0

Loading.... (view fulltext now)

Full text

(1)

Quick Sort

1

Implementation

Next, recall that our goal is to partition all remaining elements based on whether they are smaller than or greater than the pivot

We will find two entries:

– One larger than the pivot (staring from the front) – One smaller than the pivot (starting from the back)

which are out of order and then correct the ordering

I.e., swap them 7.6.5

(2)

Quick Sort

2

Implementation

Continue doing so until the appropriate entries you find are actually in order

The index to the larger entry we found would be the first large entry in the list (as seen from the left)

Therefore, we could move this entry into the last entry of the list We can fill this spot with the pivot

(3)

Quick Sort

3

Quick Sort Example

First, we examine the first, middle, and last entries of the full list The span below will indicate which list we are currently sorting

(4)

Quick Sort

4

Quick Sort Example

We select 57 to be our pivot

– We move 24 into the first location 7.6.5

(5)

Quick Sort

5

Quick Sort Example

Starting at the 2nd and 2nd-last locations: – we search forward until we find 70 > 57 – we search backward until we find 49 < 57 7.6.5

(6)

Quick Sort

6

Quick Sort Example

We swap 70 and 49, placing them in order with respect to eachother

(7)

Quick Sort

7

Quick Sort Example

We search forward until we find 97 > 57 We search backward until we find 16 < 57

(8)

Quick Sort

8

Quick Sort Example

We swap 16 and 97 which are now in order with respect to each other

(9)

Quick Sort

9

Quick Sort Example

We search forward until we find 63 > 57 We search backward until we find 55 < 57

(10)

Quick Sort

10

Quick Sort Example

We swap 63 and 55

(11)

Quick Sort

11

Quick Sort Example

We search forward until we find 85 > 57 We search backward until we find 36 < 57

(12)

Quick Sort

12

Quick Sort Example

We swap 85 and 36, placing them in order with respect to each other

(13)

Quick Sort

13

Quick Sort Example

We search forward until we find 68 > 57 We search backward until we find 9 < 57

(14)

Quick Sort

14

Quick Sort Example

We swap 68 and 9

(15)

Quick Sort

15

Quick Sort Example

We search forward until we find 76 > 57 We search backward until we find 9 < 57

– The indices are out of order, so we stop 7.6.5

(16)

Quick Sort

16

Quick Sort Example

We move the larger indexed item to the vacancy at the end of the array

We fill the empty location with the pivot, 57 The pivot is now in the correct location

(17)

Quick Sort

17

Quick Sort Example

We will now recursively call quick sort on the first half of the list When we are finished, all entries < 57 will be sorted

(18)

Quick Sort

18

Quick Sort Example

We examine the first, middle, and last elements of this sub list

(19)

Quick Sort

19

Quick Sort Example

We choose 24 to be our pivot

We move 9 into the first location in this sub-list

(20)

Quick Sort

20

Quick Sort Example

We search forward until we find 49 > 24 We search backward until we find 21 < 24

(21)

Quick Sort

21

Quick Sort Example

We swap 49 and 21, placing them in order with respect to eachother

(22)

Quick Sort

22

We search forward until we find 38 > 24 We search backward until we find 16 < 24 The indices are reversed, so we stop

Quick Sort Example

(23)

Quick Sort

23

Quick Sort Example

We move 38 to the vacant location and move the pivot 24 into the location previously occupied by 38

– 24 is now in the correct location 7.6.5

(24)

Quick Sort

24

Quick Sort Example

We will now recursively call quick sort on the left and right halves of those entries which are < 57

(25)

Quick Sort

25

Quick Sort Example

The first partition has three entries, so we sort it using insertion sort

(26)

Quick Sort

26

Quick Sort Example

The second partition also has only four entries, so again, we use insertion sort

(27)

Quick Sort

27

Quick Sort Example

First we examine the first, middle, and last entries of the sub-list

(28)

Quick Sort

28

Quick Sort Example

We choose 74 to be our pivot

We move 76 to the vacancy left by 74

(29)

Quick Sort

29

Quick Sort Example

We search forward until we find 81 > 74 We search backward until we find 70 < 74

(30)

Quick Sort

30

Quick Sort Example

We swap 70 and 84 placing them in order

(31)

Quick Sort

31

Quick Sort Example

We search forward until we find 85 > 74 We search backward until we find 61 < 74

(32)

Quick Sort

32

Quick Sort Example

We swap 85 and 61 placing them in order

(33)

Quick Sort

33

Quick Sort Example

We search forward until we find 79 > 74 We search backward until we find 63 < 74 The indices are reversed, so we stop

(34)

Quick Sort

34

Quick Sort Example

We move 79 to the vacant location and move the pivot 74 into the location previously occupied by 79

74 is now in the correct location

(35)

Quick Sort

35

Quick Sort Example

We sort the left sub-list first

It has four elements, so we simply use insertion sort

(36)

Quick Sort

36

Having sorted the four elements, we focus on the remaining sub-list of seven entries

Quick Sort Example

(37)

Quick Sort

37

Quick Sort Example

To sort the next sub-list, we examine the first, middle, and last entries

(38)

Quick Sort

38

Quick Sort Example

We select 79 as our pivot and move:

– 76 into the lowest position – 85 into the highest position 7.6.5

(39)

Quick Sort

39

Quick Sort Example

We search forward until we find 85 > 79 We search backward until we find 77 < 79

(40)

Quick Sort

40

Quick Sort Example

We swap 85 and 77, placing them in order

(41)

Quick Sort

41

Quick Sort Example

We search forward until we find 97 > 79 We search backward until we find 77 < 79 The indices are reversed, so we stop

(42)

Quick Sort

42

Quick Sort Example

Finally, we move 97 to the vacant location and copy 79 into the appropriate location

– 79 is now in the correct location 7.6.5

(43)

Quick Sort

43

Quick Sort Example

This splits the sub-list into two sub-lists of size 2 and 4 We use insertion sort for the first sub-list

(44)

Quick Sort

44

Quick Sort Example

We are left with one sub-list with four entries, so again, we use insertion sort

(45)

Quick Sort

45

Quick Sort Example

Sorting the last sub-list, we arrive at an ordered list

References

Related documents

Understand the words and rest assured in hindi with example sentences and bundle you name that you getting word wise available procure the server.. We insure for we hope and please

• Internal sort: the list is small enough to sort entirely in main memory.. - bubble sort, insertion sort, quick sort, heap sort,

This research is designed to investigate the difficulties encountered by Javanese learners in pronouncing the English phonemes and identify factors affecting

Building on the marketing analytics in the core part of the program, this course looks at Search Engine Optimization (improving the ranking of web- sites on Google and other

Reducing early school leaving is amongst the investment priorities of the European Social Fund, which Member States can use to develop policies in line with the integrated

• This step is the only different step in hyper quick sort, on each processor the remaining half of the local list and received half list are merged into a sorted local list.

In mice subjected to PSNL, repeated once daily intrathecal injection of TAT-GESV (10 nmol i.t.) and MK-801 (5 nmol i.t.) across eight consecutive days elevated (A) mechanical