3 Way Partitioning 3 way partitioning Choose partitioning

  • Slides: 30
Download presentation
3 -Way Partitioning 3 -way partitioning. Choose partitioning element. Scan from left element. Scan

3 -Way Partitioning 3 -way partitioning. Choose partitioning element. Scan from left element. Scan from right for element. Exchange. Move to left or right end if equal. Repeat until pointers cross. n n n A B X W P P V P D P C Y p Z P q partition element unpartitioned 1

3 -Way Partitioning 3 -way partitioning. Choose partitioning element. Scan from left element. Scan

3 -Way Partitioning 3 -way partitioning. Choose partitioning element. Scan from left element. Scan from right for element. Exchange. Move to left or right end if equal. Repeat until pointers cross. n n n A p B X W P P V P D P C Y Z P q 2

3 -Way Partitioning 3 -way partitioning. Choose partitioning element. Scan from left element. Scan

3 -Way Partitioning 3 -way partitioning. Choose partitioning element. Scan from left element. Scan from right for element. Exchange. Move to left or right end if equal. Repeat until pointers cross. n n n A p B X W P P V P D P C Y Z P q 3

3 -Way Partitioning 3 -way partitioning. Choose partitioning element. Scan from left element. Scan

3 -Way Partitioning 3 -way partitioning. Choose partitioning element. Scan from left element. Scan from right for element. Exchange. Move to left or right end if equal. Repeat until pointers cross. n n n swap me A p B X W P P V P D P C Y Z P q 4

3 -Way Partitioning 3 -way partitioning. Choose partitioning element. Scan from left element. Scan

3 -Way Partitioning 3 -way partitioning. Choose partitioning element. Scan from left element. Scan from right for element. Exchange. Move to left or right end if equal. Repeat until pointers cross. n n n swap me A p B X W P P V P D P C Y Z P q 5

3 -Way Partitioning 3 -way partitioning. Choose partitioning element. Scan from left element. Scan

3 -Way Partitioning 3 -way partitioning. Choose partitioning element. Scan from left element. Scan from right for element. Exchange. Move to left or right end if equal. Repeat until pointers cross. n n n swap me A p B X W P P V P D P C Y Z P q 6

3 -Way Partitioning 3 -way partitioning. Choose partitioning element. Scan from left element. Scan

3 -Way Partitioning 3 -way partitioning. Choose partitioning element. Scan from left element. Scan from right for element. Exchange. Move to left or right end if equal. Repeat until pointers cross. n n n swap me A p B X W swap me P P V P D P C Y Z P q 7

3 -Way Partitioning 3 -way partitioning. Choose partitioning element. Scan from left element. Scan

3 -Way Partitioning 3 -way partitioning. Choose partitioning element. Scan from left element. Scan from right for element. Exchange. Move to left or right end if equal. Repeat until pointers cross. n n n A p B C W P P V P D P X Y Z P q 8

3 -Way Partitioning 3 -way partitioning. Choose partitioning element. Scan from left element. Scan

3 -Way Partitioning 3 -way partitioning. Choose partitioning element. Scan from left element. Scan from right for element. Exchange. Move to left or right end if equal. Repeat until pointers cross. n n n swap me A p B C W P P V P D P X Y Z P q 9

3 -Way Partitioning 3 -way partitioning. Choose partitioning element. Scan from left element. Scan

3 -Way Partitioning 3 -way partitioning. Choose partitioning element. Scan from left element. Scan from right for element. Exchange. Move to left or right end if equal. Repeat until pointers cross. n n n swap me A p B C W P swap me P V P D P X Y Z P q 10

3 -Way Partitioning 3 -way partitioning. Choose partitioning element. Scan from left element. Scan

3 -Way Partitioning 3 -way partitioning. Choose partitioning element. Scan from left element. Scan from right for element. Exchange. Move to left or right end if equal. Repeat until pointers cross. n n n swap left A p B C P P P V P D W X Y Z P q 11

3 -Way Partitioning 3 -way partitioning. Choose partitioning element. Scan from left element. Scan

3 -Way Partitioning 3 -way partitioning. Choose partitioning element. Scan from left element. Scan from right for element. Exchange. Move to left or right end if equal. Repeat until pointers cross. n n n P p B C A P P V P D W X Y Z P q 12

3 -Way Partitioning 3 -way partitioning. Choose partitioning element. Scan from left element. Scan

3 -Way Partitioning 3 -way partitioning. Choose partitioning element. Scan from left element. Scan from right for element. Exchange. Move to left or right end if equal. Repeat until pointers cross. n n n swap me P p B C A P P V P D W X Y Z P q 13

3 -Way Partitioning 3 -way partitioning. Choose partitioning element. Scan from left element. Scan

3 -Way Partitioning 3 -way partitioning. Choose partitioning element. Scan from left element. Scan from right for element. Exchange. Move to left or right end if equal. Repeat until pointers cross. n n n swap me P p B C A P P swap me V P D W X Y Z P q 14

3 -Way Partitioning 3 -way partitioning. Choose partitioning element. Scan from left element. Scan

3 -Way Partitioning 3 -way partitioning. Choose partitioning element. Scan from left element. Scan from right for element. Exchange. Move to left or right end if equal. Repeat until pointers cross. n n n swap right P p B C A D P V P P W X Y Z P q 15

3 -Way Partitioning 3 -way partitioning. Choose partitioning element. Scan from left element. Scan

3 -Way Partitioning 3 -way partitioning. Choose partitioning element. Scan from left element. Scan from right for element. Exchange. Move to left or right end if equal. Repeat until pointers cross. n n n P p B C A D P V P Z W X Y P P q 16

3 -Way Partitioning 3 -way partitioning. Choose partitioning element. Scan from left element. Scan

3 -Way Partitioning 3 -way partitioning. Choose partitioning element. Scan from left element. Scan from right for element. Exchange. Move to left or right end if equal. Repeat until pointers cross. n n n swap me P p B C A D P V P Z W X Y P P q 17

3 -Way Partitioning 3 -way partitioning. Choose partitioning element. Scan from left element. Scan

3 -Way Partitioning 3 -way partitioning. Choose partitioning element. Scan from left element. Scan from right for element. Exchange. Move to left or right end if equal. Repeat until pointers cross. n n n swap me P p B C A D P V P Z W X Y P P q 18

3 -Way Partitioning 3 -way partitioning. Choose partitioning element. Scan from left element. Scan

3 -Way Partitioning 3 -way partitioning. Choose partitioning element. Scan from left element. Scan from right for element. Exchange. Move to left or right end if equal. Repeat until pointers cross. n n n swap left P p B C A D P V P Z W X Y P P q 19

3 -Way Partitioning 3 -way partitioning. Choose partitioning element. Scan from left element. Scan

3 -Way Partitioning 3 -way partitioning. Choose partitioning element. Scan from left element. Scan from right for element. Exchange. Move to left or right end if equal. Repeat until pointers cross. n n n swap right P P p C A D B V P Z W X Y P P q 20

3 -Way Partitioning 3 -way partitioning. Choose partitioning element. Scan from left element. Scan

3 -Way Partitioning 3 -way partitioning. Choose partitioning element. Scan from left element. Scan from right for element. Exchange. Move to left or right end if equal. Repeat until pointers cross. n n n P P p C A D B V Y Z W X P P P q 21

3 -Way Partitioning 3 -way partitioning. Choose partitioning element. Scan from left element. Scan

3 -Way Partitioning 3 -way partitioning. Choose partitioning element. Scan from left element. Scan from right for element. Exchange. Move to left or right end if equal. Repeat until pointers cross. n n n swap me P P p C A D B V Y Z W X P P P q 22

3 -Way Partitioning 3 -way partitioning. Choose partitioning element. Scan from left element. Scan

3 -Way Partitioning 3 -way partitioning. Choose partitioning element. Scan from left element. Scan from right for element. Exchange. Move to left or right end if equal. Repeat until pointers cross. n n n P P C A D B V Y p Z W X P P P q pointers cross 23

3 -Way Partitioning 3 -way partitioning. Swap elements on left with elements in middle.

3 -Way Partitioning 3 -way partitioning. Swap elements on left with elements in middle. Swap elements on right with elements in middle. n n swap me P P p swap me C A D B V Y Z W X P P P q 24

3 -Way Partitioning 3 -way partitioning. Swap elements on left with elements in middle.

3 -Way Partitioning 3 -way partitioning. Swap elements on left with elements in middle. Swap elements on right with elements in middle. n n swap me B P p C swap me A D P V Y Z W X P P P q 25

3 -Way Partitioning 3 -way partitioning. Swap elements on left with elements in middle.

3 -Way Partitioning 3 -way partitioning. Swap elements on left with elements in middle. Swap elements on right with elements in middle. n n B D p C A P P V Y Z W X P P P q 26

3 -Way Partitioning 3 -way partitioning. Swap elements on left with elements in middle.

3 -Way Partitioning 3 -way partitioning. Swap elements on left with elements in middle. Swap elements on right with elements in middle. n n swap me B D p C A P P V Y swap me Z W X P P P q 27

3 -Way Partitioning 3 -way partitioning. Swap elements on left with elements in middle.

3 -Way Partitioning 3 -way partitioning. Swap elements on left with elements in middle. Swap elements on right with elements in middle. n n swap me B D p C A P P P Y Z swap me W X P P V q 28

3 -Way Partitioning 3 -way partitioning. Swap elements on left with elements in middle.

3 -Way Partitioning 3 -way partitioning. Swap elements on left with elements in middle. Swap elements on right with elements in middle. n n swap me B D p C A P P Z W swap me X P Y V q 29

3 -Way Partitioning 3 -way partitioning. Swap elements on left with elements in middle.

3 -Way Partitioning 3 -way partitioning. Swap elements on left with elements in middle. Swap elements on right with elements in middle. n n B D C A P P p P W X Z Y V q 3 -way partitioned! 30