Presentation is loading. Please wait.

Presentation is loading. Please wait.

Heapsort.

Similar presentations


Presentation on theme: "Heapsort."— Presentation transcript:

1 Heapsort

2 Heapsort: Algorithm void heapify(Elem[] a, 1, n )
{ for( i = n/2; i > 0; i--) { buildheap(a, i, n ) } void buildheap(Elem[] a, i, n ) { int j = 2*i int b = a[i] while( j <= n) { if( j+1 <=n && a[ j] < a[ j+1] ) j = j+1; if( b < a[ j] ) a[i] = a[ j ] i = j j = 2*i a[ j/2 ] = b void Heapsort( Elem[] a, 1, n) { heapify( a, 1, n ) for( i = n; i>=2; i--) { swap( a[1], a[ i ] ) buildheap( a, 1, i-1)

3 Heapsort:Illustration (heapify)
73 1 6 57 2 3 88 60 42 83 4 5 6 7 72 48 85 heapify… 8 9 10 73 6 57 88 60 42 83 72 48 85 Sequence: 1 2 3 4 5 6 7 8 9 10

4 Heapsort:Illustration (heapify)
73 1 6 57 2 3 88 60 42 83 4 5 6 7 72 48 85 8 9 10 73 6 57 88 60 42 83 72 48 85 Sequence: 1 2 3 4 5 6 7 8 9 10

5 Heapsort:Illustration (heapify)
73 1 6 57 2 3 88 60 42 83 4 5 6 7 72 48 85 8 9 10 73 6 57 88 60 42 83 72 48 85 Sequence: 1 2 3 4 5 6 7 8 9 10

6 Heapsort:Illustration (heapify)
73 1 6 57 2 3 88 85 42 83 4 5 6 7 72 48 60 8 9 10 73 6 57 88 85 42 83 72 48 60 Sequence: 1 2 3 4 5 6 7 8 9 10

7 Heapsort:Illustration (heapify)
73 1 6 57 2 3 88 85 42 83 4 5 6 7 72 48 60 8 9 10 73 6 57 88 85 42 83 72 48 60 Sequence: 1 2 3 4 5 6 7 8 9 10

8 Heapsort:Illustration (heapify)
73 1 6 57 2 3 88 85 42 83 4 5 6 7 72 48 60 8 9 10 73 6 57 88 85 42 83 72 48 60 Sequence: 1 2 3 4 5 6 7 8 9 10

9 Heapsort:Illustration (heapify)
73 1 6 57 2 3 88 85 42 83 4 5 6 7 72 48 60 8 9 10 73 6 57 88 85 42 83 72 48 60 Sequence: 1 2 3 4 5 6 7 8 9 10

10 Heapsort:Illustration (heapify)
73 1 6 57 2 3 88 85 42 83 4 5 6 7 72 48 60 8 9 10 73 6 57 88 85 42 83 72 48 60 Sequence: 1 2 3 4 5 6 7 8 9 10

11 Heapsort:Illustration (heapify)
73 1 6 57 2 3 88 85 42 83 4 5 6 7 72 48 60 8 9 10 73 6 57 88 85 42 83 72 48 60 Sequence: 1 2 3 4 5 6 7 8 9 10

12 Heapsort:Illustration (heapify)
73 1 6 57 2 3 88 85 42 83 4 5 6 7 72 48 60 8 9 10 73 6 57 88 85 42 83 72 48 60 Sequence: 1 2 3 4 5 6 7 8 9 10

13 Heapsort:Illustration (heapify)
73 1 6 57 2 3 88 85 42 83 4 5 6 7 72 48 60 8 9 10 73 6 57 88 85 42 83 72 48 60 Sequence: 1 2 3 4 5 6 7 8 9 10

14 Heapsort:Illustration (heapify)
73 1 6 57 2 3 88 85 42 83 4 5 6 7 72 48 60 8 9 10 73 6 57 88 85 42 83 72 48 60 Sequence: 1 2 3 4 5 6 7 8 9 10

15 Heapsort:Illustration (heapify)
73 1 6 57 2 3 88 85 42 83 4 5 6 7 72 48 60 8 9 10 73 6 57 88 85 42 83 72 48 60 Sequence: 1 2 3 4 5 6 7 8 9 10

16 Heapsort:Illustration (heapify)
73 1 6 83 2 3 88 85 42 57 4 5 6 7 72 48 60 8 9 10 73 6 83 88 85 42 57 72 48 60 Sequence: 1 2 3 4 5 6 7 8 9 10

17 Heapsort:Illustration (heapify)
73 1 6 83 2 3 88 85 42 57 4 5 6 7 72 48 60 8 9 10 73 6 83 88 85 42 57 72 48 60 Sequence: 1 2 3 4 5 6 7 8 9 10

18 Heapsort:Illustration (heapify)
73 1 6 83 2 3 88 85 42 57 4 5 6 7 72 48 60 8 9 10 73 6 83 88 85 42 57 72 48 60 Sequence: 1 2 3 4 5 6 7 8 9 10

19 Heapsort:Illustration (heapify)
73 1 6 83 2 3 88 85 42 57 4 5 6 7 72 48 60 8 9 10 73 6 83 88 85 42 57 72 48 60 Sequence: 1 2 3 4 5 6 7 8 9 10

20 Heapsort:Illustration (heapify)
73 1 6 83 2 3 88 85 42 57 4 5 6 7 72 48 60 8 9 10 73 6 83 88 85 42 57 72 48 60 Sequence: 1 2 3 4 5 6 7 8 9 10

21 Heapsort:Illustration (heapify)
73 1 6 83 2 3 88 85 42 57 4 5 6 7 72 48 60 8 9 10 73 6 83 88 85 42 57 72 48 60 Sequence: 1 2 3 4 5 6 7 8 9 10

22 Heapsort:Illustration (heapify)
73 1 88 83 2 3 6 85 42 57 4 5 6 7 72 48 60 8 9 10 73 88 83 6 85 42 57 72 48 60 Sequence: 1 2 3 4 5 6 7 8 9 10

23 Heapsort:Illustration (heapify)
73 1 88 83 2 3 6 85 42 57 4 5 6 7 72 48 60 8 9 10 73 88 83 6 85 42 57 72 48 60 Sequence: 1 2 3 4 5 6 7 8 9 10

24 Heapsort:Illustration (heapify)
73 1 88 83 2 3 6 85 42 57 4 5 6 7 72 48 60 8 9 10 73 88 83 6 85 42 57 72 48 60 Sequence: 1 2 3 4 5 6 7 8 9 10

25 Heapsort:Illustration (heapify)
73 1 88 83 2 3 6 85 42 57 4 5 6 7 72 48 60 8 9 10 73 88 83 6 85 42 57 72 48 60 Sequence: 1 2 3 4 5 6 7 8 9 10

26 Heapsort:Illustration (heapify)
73 1 88 83 2 3 72 85 42 57 4 5 6 7 6 48 60 8 9 10 73 88 83 72 85 42 57 6 48 60 Sequence: 1 2 3 4 5 6 7 8 9 10

27 Heapsort:Illustration (heapify)
73 1 88 83 2 3 72 85 42 57 4 5 6 7 6 48 60 8 9 10 73 88 83 72 85 42 57 6 48 60 Sequence: 1 2 3 4 5 6 7 8 9 10

28 Heapsort:Illustration (heapify)
73 1 88 83 2 3 72 85 42 57 4 5 6 7 6 48 60 8 9 10 73 88 83 72 85 42 57 6 48 60 Sequence: 1 2 3 4 5 6 7 8 9 10

29 Heapsort:Illustration (heapify)
73 1 88 83 2 3 72 85 42 57 4 5 6 7 6 48 60 8 9 10 73 88 83 72 85 42 57 6 48 60 Sequence: 1 2 3 4 5 6 7 8 9 10

30 Heapsort:Illustration (heapify)
73 1 88 83 2 3 72 85 42 57 4 5 6 7 6 48 60 8 9 10 73 88 83 72 85 42 57 6 48 60 Sequence: 1 2 3 4 5 6 7 8 9 10

31 Heapsort:Illustration (heapify)
73 1 88 83 2 3 72 85 42 57 4 5 6 7 6 48 60 8 9 10 73 88 83 72 85 42 57 6 48 60 Sequence: 1 2 3 4 5 6 7 8 9 10

32 Heapsort:Illustration (heapify)
88 1 73 83 2 3 72 85 42 57 4 5 6 7 6 48 60 8 9 10 88 73 83 72 85 42 57 6 48 60 Sequence: 1 2 3 4 5 6 7 8 9 10

33 Heapsort:Illustration (heapify)
88 1 73 83 2 3 72 85 42 57 4 5 6 7 6 48 60 8 9 10 88 73 83 72 85 42 57 6 48 60 Sequence: 1 2 3 4 5 6 7 8 9 10

34 Heapsort:Illustration (heapify)
88 1 73 83 2 3 72 85 42 57 4 5 6 7 6 48 60 8 9 10 88 73 83 72 85 42 57 6 48 60 Sequence: 1 2 3 4 5 6 7 8 9 10

35 Heapsort:Illustration (heapify)
88 1 73 83 2 3 72 85 42 57 4 5 6 7 6 48 60 8 9 10 88 73 83 72 85 42 57 6 48 60 Sequence: 1 2 3 4 5 6 7 8 9 10

36 Heapsort:Illustration (heapify)
88 1 85 83 2 3 72 73 42 57 4 5 6 7 6 48 60 8 9 10 88 85 83 72 73 42 57 6 48 60 Sequence: 1 2 3 4 5 6 7 8 9 10

37 Heapsort:Illustration (heapify)
88 1 85 83 2 3 72 73 42 57 4 5 6 7 6 48 60 8 9 10 88 85 83 72 73 42 57 6 48 60 Sequence: 1 2 3 4 5 6 7 8 9 10

38 Heapsort:Illustration (heapify)
88 1 85 83 2 3 72 73 42 57 4 5 6 7 6 48 60 8 9 10 88 85 83 72 73 42 57 6 48 60 Sequence: 1 2 3 4 5 6 7 8 9 10

39 Heapsort:Illustration (heapify)
88 1 85 83 2 3 72 73 42 57 4 5 6 7 6 48 60 8 9 10 88 85 83 72 73 42 57 6 48 60 Sequence: 1 2 3 4 5 6 7 8 9 10

40 Heapsort:Illustration (heapify)
88 1 85 83 2 3 72 73 42 57 4 5 6 7 6 48 60 Heapified ! 8 9 10 88 85 83 72 73 42 57 6 48 60 Sequence: 1 2 3 4 5 6 7 8 9 10

41 Heapsort:Illustration (swap)
88 1 85 83 2 3 72 73 42 57 4 5 6 7 6 48 60 swap. 8 9 10 88 85 83 72 73 42 57 6 48 60 Sequence: 1 2 3 4 5 6 7 8 9 10

42 Heapsort:Illustration (swap)
60 1 85 83 2 3 72 73 42 57 4 5 6 7 6 48 88 8 9 10 60 85 83 72 73 42 57 6 48 88 Sequence: 1 2 3 4 5 6 7 8 9 10

43 Heapsort:Illustration (buildheap)
60 1 85 83 2 3 72 73 42 57 4 5 6 7 6 48 88 buildheap... 8 9 10 60 85 83 72 73 42 57 6 48 88 Sequence: 1 2 3 4 5 6 7 8 9 10

44 Heapsort:Illustration (buildheap)
60 1 85 83 2 3 72 73 42 57 4 5 6 7 6 48 88 8 9 10 60 85 83 72 73 42 57 6 48 88 Sequence: 1 2 3 4 5 6 7 8 9 10

45 Heapsort:Illustration (buildheap)
60 1 85 83 2 3 72 73 42 57 4 5 6 7 6 48 88 8 9 10 60 85 83 72 73 42 57 6 48 88 Sequence: 1 2 3 4 5 6 7 8 9 10

46 Heapsort:Illustration (buildheap)
60 1 85 83 2 3 72 73 42 57 4 5 6 7 6 48 88 8 9 10 60 85 83 72 73 42 57 6 48 88 Sequence: 1 2 3 4 5 6 7 8 9 10

47 Heapsort:Illustration (buildheap)
85 1 60 83 2 3 72 73 42 57 4 5 6 7 6 48 88 8 9 10 85 60 83 72 73 42 57 6 48 88 Sequence: 1 2 3 4 5 6 7 8 9 10

48 Heapsort:Illustration (buildheap)
85 1 60 83 2 3 72 73 42 57 4 5 6 7 6 48 88 8 9 10 85 60 83 72 73 42 57 6 48 88 Sequence: 1 2 3 4 5 6 7 8 9 10

49 Heapsort:Illustration (buildheap)
85 1 60 83 2 3 72 73 42 57 4 5 6 7 6 48 88 8 9 10 85 60 83 72 73 42 57 6 48 88 Sequence: 1 2 3 4 5 6 7 8 9 10

50 Heapsort:Illustration (buildheap)
85 1 60 83 2 3 72 73 42 57 4 5 6 7 6 48 88 8 9 10 85 60 83 72 73 42 57 6 48 88 Sequence: 1 2 3 4 5 6 7 8 9 10

51 Heapsort:Illustration (buildheap)
85 1 73 83 2 3 72 60 42 57 4 5 6 7 6 48 88 8 9 10 85 73 83 72 60 42 57 6 48 88 Sequence: 1 2 3 4 5 6 7 8 9 10

52 Heapsort:Illustration (buildheap)
85 1 73 83 2 3 72 60 42 57 4 5 6 7 6 48 88 8 9 10 85 73 83 72 60 42 57 6 48 88 Sequence: 1 2 3 4 5 6 7 8 9 10

53 Heapsort:Illustration (buildheap)
85 1 73 83 2 3 72 60 42 57 4 5 6 7 6 48 88 heap built. 8 9 10 85 73 83 72 60 42 57 6 48 88 Sequence: 1 2 3 4 5 6 7 8 9 10

54 Heapsort:Illustration (swap)
85 1 73 83 2 3 72 60 42 57 4 5 6 7 6 48 88 swap. 8 9 10 85 73 83 72 60 42 57 6 48 88 Sequence: 1 2 3 4 5 6 7 8 9 10

55 Heapsort:Illustration (swap)
48 1 73 83 2 3 72 60 42 57 4 5 6 7 6 85 88 8 9 10 48 73 83 72 60 42 57 6 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10

56 Heapsort:Illustration (buildheap)
48 1 73 83 2 3 72 60 42 57 4 5 6 7 6 85 88 buildheap… 8 9 10 48 73 83 72 60 42 57 6 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10

57 Heapsort:Illustration (buildheap)
48 1 73 83 2 3 72 60 42 57 4 5 6 7 6 85 88 8 9 10 48 73 83 72 60 42 57 6 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10

58 Heapsort:Illustration (buildheap)
48 1 73 83 2 3 72 60 42 57 4 5 6 7 6 85 88 8 9 10 48 73 83 72 60 42 57 6 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10

59 Heapsort:Illustration (buildheap)
48 1 73 83 2 3 72 60 42 57 4 5 6 7 6 85 88 8 9 10 48 73 83 72 60 42 57 6 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10

60 Heapsort:Illustration (buildheap)
83 1 73 48 2 3 72 60 42 57 4 5 6 7 6 85 88 8 9 10 83 73 48 72 60 42 57 6 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10

61 Heapsort:Illustration (buildheap)
83 1 73 48 2 3 72 60 42 57 4 5 6 7 6 85 88 8 9 10 83 73 48 72 60 42 57 6 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10

62 Heapsort:Illustration (buildheap)
83 1 73 48 2 3 72 60 42 57 4 5 6 7 6 85 88 8 9 10 83 73 48 72 60 42 57 6 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10

63 Heapsort:Illustration (buildheap)
83 1 73 48 2 3 72 60 42 57 4 5 6 7 6 85 88 8 9 10 83 73 48 72 60 42 57 6 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10

64 Heapsort:Illustration (buildheap)
83 1 73 57 2 3 72 60 42 48 4 5 6 7 6 85 88 8 9 10 83 73 57 72 60 42 48 6 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10

65 Heapsort:Illustration (buildheap)
83 1 73 57 2 3 72 60 42 48 4 5 6 7 6 85 88 8 9 10 83 73 57 72 60 42 48 6 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10

66 Heapsort:Illustration (buildheap)
83 1 73 57 2 3 72 60 42 48 4 5 6 7 6 85 88 heap built. 8 9 10 83 73 57 72 60 42 48 6 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10

67 Heapsort:Illustration (swap)
83 1 73 57 2 3 72 60 42 48 4 5 6 7 6 85 88 swap. 8 9 10 83 73 57 72 60 42 48 6 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10

68 Heapsort:Illustration (swap)
6 1 73 57 2 3 72 60 42 48 4 5 6 7 83 85 88 8 9 10 6 73 57 72 60 42 48 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10

69 Heapsort:Illustration (buildheap)
6 1 73 57 2 3 72 60 42 48 4 5 6 7 83 85 88 buildheap... 8 9 10 6 73 57 72 60 42 48 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10

70 Heapsort:Illustration (buildheap)
6 1 73 57 2 3 72 60 42 48 4 5 6 7 83 85 88 8 9 10 6 73 57 72 60 42 48 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10

71 Heapsort:Illustration (buildheap)
6 1 73 57 2 3 72 60 42 48 4 5 6 7 83 85 88 8 9 10 6 73 57 72 60 42 48 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10

72 Heapsort:Illustration (buildheap)
6 1 73 57 2 3 72 60 42 48 4 5 6 7 83 85 88 8 9 10 6 73 57 72 60 42 48 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10

73 Heapsort:Illustration (buildheap)
73 1 6 57 2 3 72 60 42 48 4 5 6 7 83 85 88 8 9 10 73 6 57 72 60 42 48 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10

74 Heapsort:Illustration (buildheap)
73 1 6 57 2 3 72 60 42 48 4 5 6 7 83 85 88 8 9 10 73 6 57 72 60 42 48 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10

75 Heapsort:Illustration (buildheap)
73 1 6 57 2 3 72 60 42 48 4 5 6 7 83 85 88 8 9 10 73 6 57 72 60 42 48 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10

76 Heapsort:Illustration (buildheap)
73 1 6 57 2 3 72 60 42 48 4 5 6 7 83 85 88 8 9 10 73 6 57 72 60 42 48 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10

77 Heapsort:Illustration (buildheap)
73 1 72 57 2 3 6 60 42 48 4 5 6 7 83 85 88 8 9 10 73 72 57 6 60 42 48 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10

78 Heapsort:Illustration (buildheap)
73 1 72 57 2 3 6 60 42 48 4 5 6 7 83 85 88 8 9 10 73 72 57 6 60 42 48 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10

79 Heapsort:Illustration (buildheap)
73 1 72 57 2 3 6 60 42 48 4 5 6 7 83 85 88 heap built. 8 9 10 73 72 57 6 60 42 48 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10

80 Heapsort:Illustration (swap)
73 1 72 57 2 3 6 60 42 48 4 5 6 7 83 85 88 swap. 8 9 10 73 72 57 6 60 42 48 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10

81 Heapsort:Illustration (swap)
48 1 72 57 2 3 6 60 42 73 4 5 6 7 83 85 88 8 9 10 48 72 57 6 60 42 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10

82 Heapsort:Illustration (buildheap)
48 1 72 57 2 3 6 60 42 73 4 5 6 7 83 85 88 build heap... 8 9 10 48 72 57 6 60 42 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10

83 Heapsort:Illustration (buildheap)
48 1 72 57 2 3 6 60 42 73 4 5 6 7 83 85 88 8 9 10 48 72 57 6 60 42 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10

84 Heapsort:Illustration (buildheap)
48 1 72 57 2 3 6 60 42 73 4 5 6 7 83 85 88 8 9 10 48 72 57 6 60 42 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10

85 Heapsort:Illustration (buildheap)
48 1 72 57 2 3 6 60 42 73 4 5 6 7 83 85 88 8 9 10 48 72 57 6 60 42 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10

86 Heapsort:Illustration (buildheap)
72 1 48 57 2 3 6 60 42 73 4 5 6 7 83 85 88 8 9 10 72 48 57 6 60 42 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10

87 Heapsort:Illustration (buildheap)
72 1 48 57 2 3 6 60 42 73 4 5 6 7 83 85 88 8 9 10 72 48 57 6 60 42 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10

88 Heapsort:Illustration (buildheap)
72 1 48 57 2 3 6 60 42 73 4 5 6 7 83 85 88 8 9 10 72 48 57 6 60 42 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10

89 Heapsort:Illustration (buildheap)
72 1 48 57 2 3 6 60 42 73 4 5 6 7 83 85 88 8 9 10 72 48 57 6 60 42 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10

90 Heapsort:Illustration (buildheap)
72 1 60 57 2 3 6 48 42 73 4 5 6 7 83 85 88 8 9 10 72 60 57 6 48 42 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10

91 Heapsort:Illustration (buildheap)
72 1 60 57 2 3 6 48 42 73 4 5 6 7 83 85 88 8 9 10 72 60 57 6 48 42 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10

92 Heapsort:Illustration (buildheap)
72 1 60 57 2 3 6 48 42 73 4 5 6 7 83 85 88 heap built. 8 9 10 72 60 57 6 48 42 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10

93 Heapsort:Illustration (swap)
72 1 60 57 2 3 6 48 42 73 4 5 6 7 83 85 88 swap. 8 9 10 72 60 57 6 48 42 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10

94 Heapsort:Illustration (swap)
42 1 60 57 2 3 6 48 72 73 4 5 6 7 83 85 88 8 9 10 42 60 57 6 48 72 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10

95 Heapsort:Illustration (buildheap)
42 1 60 57 2 3 6 48 72 73 4 5 6 7 83 85 88 build heap... 8 9 10 42 60 57 6 48 72 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10

96 Heapsort:Illustration (buildheap)
42 1 60 57 2 3 6 48 72 73 4 5 6 7 83 85 88 8 9 10 42 60 57 6 48 72 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10

97 Heapsort:Illustration (buildheap)
42 1 60 57 2 3 6 48 72 73 4 5 6 7 83 85 88 8 9 10 42 60 57 6 48 72 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10

98 Heapsort:Illustration (buildheap)
42 1 60 57 2 3 6 48 72 73 4 5 6 7 83 85 88 8 9 10 42 60 57 6 48 72 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10

99 Heapsort:Illustration (buildheap)
60 1 42 57 2 3 6 48 72 73 4 5 6 7 83 85 88 8 9 10 60 42 57 6 48 72 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10

100 Heapsort:Illustration (buildheap)
60 1 42 57 2 3 6 48 72 73 4 5 6 7 83 85 88 8 9 10 60 42 57 6 48 72 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10

101 Heapsort:Illustration (buildheap)
60 1 42 57 2 3 6 48 72 73 4 5 6 7 83 85 88 8 9 10 60 42 57 6 48 72 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10

102 Heapsort:Illustration (buildheap)
60 1 42 57 2 3 6 48 72 73 4 5 6 7 83 85 88 8 9 10 60 42 57 6 48 72 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10

103 Heapsort:Illustration (buildheap)
60 1 48 57 2 3 6 42 72 73 4 5 6 7 83 85 88 8 9 10 60 48 57 6 42 72 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10

104 Heapsort:Illustration (buildheap)
60 1 48 57 2 3 6 42 72 73 4 5 6 7 83 85 88 8 9 10 60 48 57 6 42 72 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10

105 Heapsort:Illustration (buildheap)
60 1 48 57 2 3 6 42 72 73 4 5 6 7 83 85 88 heap built... 8 9 10 60 48 57 6 42 72 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10

106 Heapsort:Illustration (swap)
60 1 48 57 2 3 6 42 72 73 4 5 6 7 83 85 88 swap... 8 9 10 60 48 57 6 42 72 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10

107 Heapsort:Illustration (swap)
42 1 48 57 2 3 6 60 72 73 4 5 6 7 83 85 88 8 9 10 42 48 57 6 60 72 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10

108 Heapsort:Illustration (buildheap)
42 1 48 57 2 3 6 60 72 73 4 5 6 7 83 85 88 build heap... 8 9 10 42 48 57 6 60 72 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10

109 Heapsort:Illustration (buildheap)
42 1 48 57 2 3 6 60 72 73 4 5 6 7 83 85 88 8 9 10 42 48 57 6 60 72 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10

110 Heapsort:Illustration (buildheap)
42 1 48 57 2 3 6 60 72 73 4 5 6 7 83 85 88 8 9 10 42 48 57 6 60 72 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10

111 Heapsort:Illustration (buildheap)
42 1 48 57 2 3 6 60 72 73 4 5 6 7 83 85 88 8 9 10 42 48 57 6 60 72 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10

112 Heapsort:Illustration (buildheap)
57 1 48 42 2 3 6 60 72 73 4 5 6 7 83 85 88 8 9 10 57 48 42 6 60 72 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10

113 Heapsort:Illustration (buildheap)
57 1 48 42 2 3 6 60 72 73 4 5 6 7 83 85 88 8 9 10 57 48 42 6 60 72 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10

114 Heapsort:Illustration (buildheap)
57 1 48 42 2 3 6 60 72 73 4 5 6 7 83 85 88 heap built. 8 9 10 57 48 42 6 60 72 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10

115 Heapsort:Illustration (swap)
57 1 48 42 2 3 6 60 72 73 4 5 6 7 83 85 88 swap. 8 9 10 57 48 42 6 60 72 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10

116 Heapsort:Illustration (swap)
6 1 48 42 2 3 57 60 72 73 4 5 6 7 83 85 88 8 9 10 6 48 42 57 60 72 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10

117 Heapsort:Illustration (buildheap)
6 1 48 42 2 3 57 60 72 73 4 5 6 7 83 85 88 build heap... 8 9 10 6 48 42 57 60 72 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10

118 Heapsort:Illustration (buildheap)
6 1 48 42 2 3 57 60 72 73 4 5 6 7 83 85 88 8 9 10 6 48 42 57 60 72 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10

119 Heapsort:Illustration (buildheap)
6 1 48 42 2 3 57 60 72 73 4 5 6 7 83 85 88 8 9 10 6 48 42 57 60 72 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10

120 Heapsort:Illustration (buildheap)
6 1 48 42 2 3 57 60 72 73 4 5 6 7 83 85 88 8 9 10 6 48 42 57 60 72 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10

121 Heapsort:Illustration (buildheap)
48 1 6 42 2 3 57 60 72 73 4 5 6 7 83 85 88 8 9 10 48 6 42 57 60 72 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10

122 Heapsort:Illustration (buildheap)
48 1 6 42 2 3 57 60 72 73 4 5 6 7 83 85 88 8 9 10 48 6 42 57 60 72 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10

123 Heapsort:Illustration (buildheap)
48 1 6 42 2 3 57 60 72 73 4 5 6 7 83 85 88 heap built. 8 9 10 48 6 42 57 60 72 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10

124 Heapsort:Illustration (swap)
48 1 6 42 2 3 57 60 72 73 4 5 6 7 83 85 88 swap. 8 9 10 48 6 42 57 60 72 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10

125 Heapsort:Illustration (swap)
42 1 6 48 2 3 57 60 72 73 4 5 6 7 83 85 88 8 9 10 42 6 48 57 60 72 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10

126 Heapsort:Illustration (buildheap)
42 1 6 48 2 3 57 60 72 73 4 5 6 7 83 85 88 build heap... 8 9 10 42 6 48 57 60 72 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10

127 Heapsort:Illustration (buildheap)
42 1 6 48 2 3 57 60 72 73 4 5 6 7 83 85 88 8 9 10 42 6 48 57 60 72 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10

128 Heapsort:Illustration (buildheap)
42 1 6 48 2 3 57 60 72 73 4 5 6 7 83 85 88 8 9 10 42 6 48 57 60 72 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10

129 Heapsort:Illustration (buildheap)
42 1 6 48 2 3 57 60 72 73 4 5 6 7 83 85 88 8 9 10 42 6 48 57 60 72 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10

130 Heapsort:Illustration (buildheap)
42 1 6 48 2 3 57 60 72 73 4 5 6 7 83 85 88 heap built. 8 9 10 42 6 48 57 60 72 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10

131 Heapsort:Illustration (swap)
42 1 6 48 2 3 57 60 72 73 4 5 6 7 83 85 88 swap. 8 9 10 42 6 48 57 60 72 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10

132 Heapsort:Illustration (swap)
6 1 42 48 2 3 57 60 72 73 4 5 6 7 83 85 88 8 9 10 6 42 48 57 60 72 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10

133 Heapsort:Illustration
6 1 42 48 2 3 57 60 72 73 4 5 6 7 83 85 88 almost there… 8 9 10 6 42 48 57 60 72 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10

134 Heapsort:Illustration (swap)
6 1 42 48 2 3 57 60 72 73 4 5 6 7 83 85 88 SORTED ! 8 9 10 6 42 48 57 60 72 73 83 85 88 Sequence: 1 2 3 4 5 6 7 8 9 10

135 Heapsort: Time complexity
heapify() takes O(n) time n buildheap()s each take O( log2n ) time Best, worst, average-case O(nlog2n)

136 Binsort: Algorithm void binsort( Elem[] a, int n ) {
List[] B = new List[ MAX_KEY_VALUE ] for( i=0; I<n; I++ ) B[ a[i].key ].append( a[i] ) int index = 0 for( i=0; i< MAX_KEY_VALUE; i++) { for( B[i].first(); B[i].isInList(); B[i].next() ) { a[i] = B[i].currentValue() }

137 Bucketsort: Algorithm
Put a range of values in bins and then sort the contents of each bin and then output the values of each bin in order.

138 Radixsort: Algorithm void radixsort( Elem[] a, Elem[] B, int n, int k, int r, Elem[] count) { // count[i] stores the number of records in bin[i] for( int i=0, rtok=1; i<k; i++, rtok*=r) //for k digits { for( int j=0; j<r; j++) count[j]=0; //initialize count //Count the no. of records for each bin on this pass for( j=0; j<n; j++ ) count[ (a[j].key / rtok) % r ] ++ // Index B: count [j] will be index for last slot of bin j for( j=1; j<r; j++ ) count[j] = count[j-1] + count[j] // put records into bins working from bottom of each bin // since bins fill from the bottom, j counts downwards for( j=n-1; j>=0; j--) B[--count[ (a[j].key / rtok) % r ] ] = a[j] for( j=0; j<n; j++ ) a[j] = B[j] //copy B back into a }


Download ppt "Heapsort."

Similar presentations


Ads by Google