x 600 50 250 10 33 130 200 5 2 25 public void...

64
X 600 50 250 10 33 130 200 5 2 25 0 1 2 3 4 5 6 7 8 9 10 11 12 600 50 250 5 2 25 10 33 130 200 public void sort(){ int n= size; for(int i= 1; i < n; i++){ int tmpKey= keys[1]; T tmpData= data[1]; keys[1]= keys[size]; data[1]= data[size]; size--; siftDown(1); keys[size+1]= tmpKey; data[size+1]= tmpData; } } } Size = 10

Upload: others

Post on 20-Aug-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: X 600 50 250 10 33 130 200 5 2 25 public void sort(){fac.ksu.edu.sa/sites/default/files/heapsort.pdfX 25 50 250 10 33 130 200 5 2 25 0 1 2 3 4 5 6 7 8 9 10 11 12 25 50 250 5 2 25 10

X 600 50 250 10 33 130 200 5 2 25

0 1 2 3 4 5 6 7 8 9 10 11 12

600

50 250

5 2 25

10 33 130 200

public void sort(){ int n= size;for(int i= 1; i < n; i++){

int tmpKey= keys[1];T tmpData= data[1];keys[1]= keys[size];data[1]= data[size];size--;siftDown(1);keys[size+1]= tmpKey;data[size+1]= tmpData;

}}

}

Size = 10

Page 2: X 600 50 250 10 33 130 200 5 2 25 public void sort(){fac.ksu.edu.sa/sites/default/files/heapsort.pdfX 25 50 250 10 33 130 200 5 2 25 0 1 2 3 4 5 6 7 8 9 10 11 12 25 50 250 5 2 25 10

X 600 50 250 10 33 130 200 5 2 25

0 1 2 3 4 5 6 7 8 9 10 11 12

600

50 250

5 2 25

10 33 130 200

public void sort(){ int n= size;for(int i= 1; i < n; i++){

int tmpKey= keys[1];T tmpData= data[1];keys[1]= keys[size];data[1]= data[size];size--;siftDown(1);keys[size+1]= tmpKey;data[size+1]= tmpData;

}}

}

Size = 10tempKey = 600

Page 3: X 600 50 250 10 33 130 200 5 2 25 public void sort(){fac.ksu.edu.sa/sites/default/files/heapsort.pdfX 25 50 250 10 33 130 200 5 2 25 0 1 2 3 4 5 6 7 8 9 10 11 12 25 50 250 5 2 25 10

X 25 50 250 10 33 130 200 5 2 25

0 1 2 3 4 5 6 7 8 9 10 11 12

25

50 250

5 2 25

10 33 130 200

public void sort(){ int n= size;for(int i= 1; i < n; i++){

int tmpKey= keys[1];T tmpData= data[1];keys[1]= keys[size];data[1]= data[size];size--;siftDown(1);keys[size+1]= tmpKey;data[size+1]= tmpData;

}}

}

Size = 10tempKey = 600

Page 4: X 600 50 250 10 33 130 200 5 2 25 public void sort(){fac.ksu.edu.sa/sites/default/files/heapsort.pdfX 25 50 250 10 33 130 200 5 2 25 0 1 2 3 4 5 6 7 8 9 10 11 12 25 50 250 5 2 25 10

X 25 50 250 10 33 130 200 5 2 25

0 1 2 3 4 5 6 7 8 9 10 11 12

25

50 250

5 2

10 33 130 200

public void sort(){ int n= size;for(int i= 1; i < n; i++){

int tmpKey= keys[1];T tmpData= data[1];keys[1]= keys[size];data[1]= data[size];size--;siftDown(1);keys[size+1]= tmpKey;data[size+1]= tmpData;

}}

}

Size = 9tempKey = 600

Page 5: X 600 50 250 10 33 130 200 5 2 25 public void sort(){fac.ksu.edu.sa/sites/default/files/heapsort.pdfX 25 50 250 10 33 130 200 5 2 25 0 1 2 3 4 5 6 7 8 9 10 11 12 25 50 250 5 2 25 10

X 25 50 250 10 33 130 200 5 2 25

0 1 2 3 4 5 6 7 8 9 10 11 12

25

50 250

5 2

10 33 130 200

public void sort(){ int n= size;for(int i= 1; i < n; i++){

int tmpKey= keys[1];T tmpData= data[1];keys[1]= keys[size];data[1]= data[size];size--;siftDown(1);keys[size+1]= tmpKey;data[size+1]= tmpData;

}}

}

Size = 9tempKey = 600

Page 6: X 600 50 250 10 33 130 200 5 2 25 public void sort(){fac.ksu.edu.sa/sites/default/files/heapsort.pdfX 25 50 250 10 33 130 200 5 2 25 0 1 2 3 4 5 6 7 8 9 10 11 12 25 50 250 5 2 25 10

X 250 50 25 10 33 130 200 5 2 25

0 1 2 3 4 5 6 7 8 9 10 11 12

250

50 25

5 2

10 33 130 200

public void sort(){ int n= size;for(int i= 1; i < n; i++){

int tmpKey= keys[1];T tmpData= data[1];keys[1]= keys[size];data[1]= data[size];size--;siftDown(1);keys[size+1]= tmpKey;data[size+1]= tmpData;

}}

}

Size = 9tempKey = 600

Page 7: X 600 50 250 10 33 130 200 5 2 25 public void sort(){fac.ksu.edu.sa/sites/default/files/heapsort.pdfX 25 50 250 10 33 130 200 5 2 25 0 1 2 3 4 5 6 7 8 9 10 11 12 25 50 250 5 2 25 10

X 250 50 25 10 33 130 200 5 2 25

0 1 2 3 4 5 6 7 8 9 10 11 12

250

50 25

5 2

10 33 130 200

public void sort(){ int n= size;for(int i= 1; i < n; i++){

int tmpKey= keys[1];T tmpData= data[1];keys[1]= keys[size];data[1]= data[size];size--;siftDown(1);keys[size+1]= tmpKey;data[size+1]= tmpData;

}}

}

Size = 9tempKey = 600

Page 8: X 600 50 250 10 33 130 200 5 2 25 public void sort(){fac.ksu.edu.sa/sites/default/files/heapsort.pdfX 25 50 250 10 33 130 200 5 2 25 0 1 2 3 4 5 6 7 8 9 10 11 12 25 50 250 5 2 25 10

X 250 50 200 10 33 130 25 5 2 25

0 1 2 3 4 5 6 7 8 9 10 11 12

250

50 200

5 2

10 33 130 25

public void sort(){ int n= size;for(int i= 1; i < n; i++){

int tmpKey= keys[1];T tmpData= data[1];keys[1]= keys[size];data[1]= data[size];size--;siftDown(1);keys[size+1]= tmpKey;data[size+1]= tmpData;

}}

}

Size = 9tempKey = 600

Page 9: X 600 50 250 10 33 130 200 5 2 25 public void sort(){fac.ksu.edu.sa/sites/default/files/heapsort.pdfX 25 50 250 10 33 130 200 5 2 25 0 1 2 3 4 5 6 7 8 9 10 11 12 25 50 250 5 2 25 10

X 250 50 200 10 33 130 25 5 2 600

0 1 2 3 4 5 6 7 8 9 10 11 12

250

50 200

5 2

10 33 130 25

public void sort(){ int n= size;for(int i= 1; i < n; i++){

int tmpKey= keys[1];T tmpData= data[1];keys[1]= keys[size];data[1]= data[size];size--;siftDown(1);keys[size+1]= tmpKey;data[size+1]= tmpData;

}}

}

Size = 9tempKey = 600

Page 10: X 600 50 250 10 33 130 200 5 2 25 public void sort(){fac.ksu.edu.sa/sites/default/files/heapsort.pdfX 25 50 250 10 33 130 200 5 2 25 0 1 2 3 4 5 6 7 8 9 10 11 12 25 50 250 5 2 25 10

X 250 50 200 10 33 130 25 5 2 600

0 1 2 3 4 5 6 7 8 9 10 11 12

250

50 200

5 2

10 33 130 25

public void sort(){ int n= size;for(int i= 1; i < n; i++){

int tmpKey= keys[1];T tmpData= data[1];keys[1]= keys[size];data[1]= data[size];size--;siftDown(1);keys[size+1]= tmpKey;data[size+1]= tmpData;

}}

}

Size = 9tempKey = 250

Page 11: X 600 50 250 10 33 130 200 5 2 25 public void sort(){fac.ksu.edu.sa/sites/default/files/heapsort.pdfX 25 50 250 10 33 130 200 5 2 25 0 1 2 3 4 5 6 7 8 9 10 11 12 25 50 250 5 2 25 10

X 2 50 200 10 33 130 25 5 2 600

0 1 2 3 4 5 6 7 8 9 10 11 12

2

50 200

5 2

10 33 130 25

public void sort(){ int n= size;for(int i= 1; i < n; i++){

int tmpKey= keys[1];T tmpData= data[1];keys[1]= keys[size];data[1]= data[size];size--;siftDown(1);keys[size+1]= tmpKey;data[size+1]= tmpData;

}}

}

Size = 9tempKey = 250

Page 12: X 600 50 250 10 33 130 200 5 2 25 public void sort(){fac.ksu.edu.sa/sites/default/files/heapsort.pdfX 25 50 250 10 33 130 200 5 2 25 0 1 2 3 4 5 6 7 8 9 10 11 12 25 50 250 5 2 25 10

X 2 50 200 10 33 130 25 5 2 600

0 1 2 3 4 5 6 7 8 9 10 11 12

2

50 200

5

10 33 130 25

public void sort(){ int n= size;for(int i= 1; i < n; i++){

int tmpKey= keys[1];T tmpData= data[1];keys[1]= keys[size];data[1]= data[size];size--;siftDown(1);keys[size+1]= tmpKey;data[size+1]= tmpData;

}}

}

Size = 8tempKey = 250

Page 13: X 600 50 250 10 33 130 200 5 2 25 public void sort(){fac.ksu.edu.sa/sites/default/files/heapsort.pdfX 25 50 250 10 33 130 200 5 2 25 0 1 2 3 4 5 6 7 8 9 10 11 12 25 50 250 5 2 25 10

X 2 50 200 10 33 130 25 5 2 600

0 1 2 3 4 5 6 7 8 9 10 11 12

2

50 200

5

10 33 130 25

public void sort(){ int n= size;for(int i= 1; i < n; i++){

int tmpKey= keys[1];T tmpData= data[1];keys[1]= keys[size];data[1]= data[size];size--;siftDown(1);keys[size+1]= tmpKey;data[size+1]= tmpData;

}}

}

Size = 8tempKey = 250

Page 14: X 600 50 250 10 33 130 200 5 2 25 public void sort(){fac.ksu.edu.sa/sites/default/files/heapsort.pdfX 25 50 250 10 33 130 200 5 2 25 0 1 2 3 4 5 6 7 8 9 10 11 12 25 50 250 5 2 25 10

X 200 50 2 10 33 130 25 5 2 600

0 1 2 3 4 5 6 7 8 9 10 11 12

200

50 2

5

10 33 130 25

public void sort(){ int n= size;for(int i= 1; i < n; i++){

int tmpKey= keys[1];T tmpData= data[1];keys[1]= keys[size];data[1]= data[size];size--;siftDown(1);keys[size+1]= tmpKey;data[size+1]= tmpData;

}}

}

Size = 8tempKey = 250

Page 15: X 600 50 250 10 33 130 200 5 2 25 public void sort(){fac.ksu.edu.sa/sites/default/files/heapsort.pdfX 25 50 250 10 33 130 200 5 2 25 0 1 2 3 4 5 6 7 8 9 10 11 12 25 50 250 5 2 25 10

X 200 50 2 10 33 130 25 5 2 600

0 1 2 3 4 5 6 7 8 9 10 11 12

200

50 2

5

10 33 130 25

public void sort(){ int n= size;for(int i= 1; i < n; i++){

int tmpKey= keys[1];T tmpData= data[1];keys[1]= keys[size];data[1]= data[size];size--;siftDown(1);keys[size+1]= tmpKey;data[size+1]= tmpData;

}}

}

Size = 8tempKey = 250

Page 16: X 600 50 250 10 33 130 200 5 2 25 public void sort(){fac.ksu.edu.sa/sites/default/files/heapsort.pdfX 25 50 250 10 33 130 200 5 2 25 0 1 2 3 4 5 6 7 8 9 10 11 12 25 50 250 5 2 25 10

X 200 50 130 10 33 2 25 5 2 600

0 1 2 3 4 5 6 7 8 9 10 11 12

200

50 130

5

10 33 2 25

public void sort(){ int n= size;for(int i= 1; i < n; i++){

int tmpKey= keys[1];T tmpData= data[1];keys[1]= keys[size];data[1]= data[size];size--;siftDown(1);keys[size+1]= tmpKey;data[size+1]= tmpData;

}}

}

Size = 8tempKey = 250

Page 17: X 600 50 250 10 33 130 200 5 2 25 public void sort(){fac.ksu.edu.sa/sites/default/files/heapsort.pdfX 25 50 250 10 33 130 200 5 2 25 0 1 2 3 4 5 6 7 8 9 10 11 12 25 50 250 5 2 25 10

X 200 50 130 10 33 2 25 5 250 600

0 1 2 3 4 5 6 7 8 9 10 11 12

200

50 130

5

10 33 2 25

public void sort(){ int n= size;for(int i= 1; i < n; i++){

int tmpKey= keys[1];T tmpData= data[1];keys[1]= keys[size];data[1]= data[size];size--;siftDown(1);keys[size+1]= tmpKey;data[size+1]= tmpData;

}}

}

Size = 8tempKey = 250

Page 18: X 600 50 250 10 33 130 200 5 2 25 public void sort(){fac.ksu.edu.sa/sites/default/files/heapsort.pdfX 25 50 250 10 33 130 200 5 2 25 0 1 2 3 4 5 6 7 8 9 10 11 12 25 50 250 5 2 25 10

X 200 50 130 10 33 2 25 5 250 600

0 1 2 3 4 5 6 7 8 9 10 11 12

200

50 130

5

10 33 2 25

public void sort(){ int n= size;for(int i= 1; i < n; i++){

int tmpKey= keys[1];T tmpData= data[1];keys[1]= keys[size];data[1]= data[size];size--;siftDown(1);keys[size+1]= tmpKey;data[size+1]= tmpData;

}}

}

Size = 8tempKey = 200

Page 19: X 600 50 250 10 33 130 200 5 2 25 public void sort(){fac.ksu.edu.sa/sites/default/files/heapsort.pdfX 25 50 250 10 33 130 200 5 2 25 0 1 2 3 4 5 6 7 8 9 10 11 12 25 50 250 5 2 25 10

X 5 50 130 10 33 2 25 5 250 600

0 1 2 3 4 5 6 7 8 9 10 11 12

5

50 130

5

10 33 2 25

public void sort(){ int n= size;for(int i= 1; i < n; i++){

int tmpKey= keys[1];T tmpData= data[1];keys[1]= keys[size];data[1]= data[size];size--;siftDown(1);keys[size+1]= tmpKey;data[size+1]= tmpData;

}}

}

Size = 8tempKey = 200

Page 20: X 600 50 250 10 33 130 200 5 2 25 public void sort(){fac.ksu.edu.sa/sites/default/files/heapsort.pdfX 25 50 250 10 33 130 200 5 2 25 0 1 2 3 4 5 6 7 8 9 10 11 12 25 50 250 5 2 25 10

X 5 50 130 10 33 2 25 5 250 600

0 1 2 3 4 5 6 7 8 9 10 11 12

5

50 130

10 33 2 25

public void sort(){ int n= size;for(int i= 1; i < n; i++){

int tmpKey= keys[1];T tmpData= data[1];keys[1]= keys[size];data[1]= data[size];size--;siftDown(1);keys[size+1]= tmpKey;data[size+1]= tmpData;

}}

}

Size = 7tempKey = 200

Page 21: X 600 50 250 10 33 130 200 5 2 25 public void sort(){fac.ksu.edu.sa/sites/default/files/heapsort.pdfX 25 50 250 10 33 130 200 5 2 25 0 1 2 3 4 5 6 7 8 9 10 11 12 25 50 250 5 2 25 10

X 5 50 130 10 33 2 25 5 250 600

0 1 2 3 4 5 6 7 8 9 10 11 12

5

50 130

10 33 2 25

public void sort(){ int n= size;for(int i= 1; i < n; i++){

int tmpKey= keys[1];T tmpData= data[1];keys[1]= keys[size];data[1]= data[size];size--;siftDown(1);keys[size+1]= tmpKey;data[size+1]= tmpData;

}}

}

Size = 7tempKey = 200

Page 22: X 600 50 250 10 33 130 200 5 2 25 public void sort(){fac.ksu.edu.sa/sites/default/files/heapsort.pdfX 25 50 250 10 33 130 200 5 2 25 0 1 2 3 4 5 6 7 8 9 10 11 12 25 50 250 5 2 25 10

X 130 50 5 10 33 2 25 5 250 600

0 1 2 3 4 5 6 7 8 9 10 11 12

130

50 5

10 33 2 25

public void sort(){ int n= size;for(int i= 1; i < n; i++){

int tmpKey= keys[1];T tmpData= data[1];keys[1]= keys[size];data[1]= data[size];size--;siftDown(1);keys[size+1]= tmpKey;data[size+1]= tmpData;

}}

}

Size = 7tempKey = 200

Page 23: X 600 50 250 10 33 130 200 5 2 25 public void sort(){fac.ksu.edu.sa/sites/default/files/heapsort.pdfX 25 50 250 10 33 130 200 5 2 25 0 1 2 3 4 5 6 7 8 9 10 11 12 25 50 250 5 2 25 10

X 130 50 5 10 33 2 25 5 250 600

0 1 2 3 4 5 6 7 8 9 10 11 12

130

50 5

10 33 2 25

public void sort(){ int n= size;for(int i= 1; i < n; i++){

int tmpKey= keys[1];T tmpData= data[1];keys[1]= keys[size];data[1]= data[size];size--;siftDown(1);keys[size+1]= tmpKey;data[size+1]= tmpData;

}}

}

Size = 7tempKey = 200

Page 24: X 600 50 250 10 33 130 200 5 2 25 public void sort(){fac.ksu.edu.sa/sites/default/files/heapsort.pdfX 25 50 250 10 33 130 200 5 2 25 0 1 2 3 4 5 6 7 8 9 10 11 12 25 50 250 5 2 25 10

X 130 50 25 10 33 2 5 5 250 600

0 1 2 3 4 5 6 7 8 9 10 11 12

130

50 25

10 33 2 5

public void sort(){ int n= size;for(int i= 1; i < n; i++){

int tmpKey= keys[1];T tmpData= data[1];keys[1]= keys[size];data[1]= data[size];size--;siftDown(1);keys[size+1]= tmpKey;data[size+1]= tmpData;

}}

}

Size = 7tempKey = 200

Page 25: X 600 50 250 10 33 130 200 5 2 25 public void sort(){fac.ksu.edu.sa/sites/default/files/heapsort.pdfX 25 50 250 10 33 130 200 5 2 25 0 1 2 3 4 5 6 7 8 9 10 11 12 25 50 250 5 2 25 10

X 130 50 25 10 33 2 5 200 250 600

0 1 2 3 4 5 6 7 8 9 10 11 12

130

50 25

10 33 2 5

public void sort(){ int n= size;for(int i= 1; i < n; i++){

int tmpKey= keys[1];T tmpData= data[1];keys[1]= keys[size];data[1]= data[size];size--;siftDown(1);keys[size+1]= tmpKey;data[size+1]= tmpData;

}}

}

Size = 7tempKey = 200

Page 26: X 600 50 250 10 33 130 200 5 2 25 public void sort(){fac.ksu.edu.sa/sites/default/files/heapsort.pdfX 25 50 250 10 33 130 200 5 2 25 0 1 2 3 4 5 6 7 8 9 10 11 12 25 50 250 5 2 25 10

X 130 50 25 10 33 2 5 200 250 600

0 1 2 3 4 5 6 7 8 9 10 11 12

130

50 25

10 33 2 5

public void sort(){ int n= size;for(int i= 1; i < n; i++){

int tmpKey= keys[1];T tmpData= data[1];keys[1]= keys[size];data[1]= data[size];size--;siftDown(1);keys[size+1]= tmpKey;data[size+1]= tmpData;

}}

}

Size = 7tempKey = 130

Page 27: X 600 50 250 10 33 130 200 5 2 25 public void sort(){fac.ksu.edu.sa/sites/default/files/heapsort.pdfX 25 50 250 10 33 130 200 5 2 25 0 1 2 3 4 5 6 7 8 9 10 11 12 25 50 250 5 2 25 10

X 5 50 25 10 33 2 5 200 250 600

0 1 2 3 4 5 6 7 8 9 10 11 12

5

50 25

10 33 2 5

public void sort(){ int n= size;for(int i= 1; i < n; i++){

int tmpKey= keys[1];T tmpData= data[1];keys[1]= keys[size];data[1]= data[size];size--;siftDown(1);keys[size+1]= tmpKey;data[size+1]= tmpData;

}}

}

Size = 7tempKey = 130

Page 28: X 600 50 250 10 33 130 200 5 2 25 public void sort(){fac.ksu.edu.sa/sites/default/files/heapsort.pdfX 25 50 250 10 33 130 200 5 2 25 0 1 2 3 4 5 6 7 8 9 10 11 12 25 50 250 5 2 25 10

X 5 50 25 10 33 2 5 200 250 600

0 1 2 3 4 5 6 7 8 9 10 11 12

5

50 25

10 33 2

public void sort(){ int n= size;for(int i= 1; i < n; i++){

int tmpKey= keys[1];T tmpData= data[1];keys[1]= keys[size];data[1]= data[size];size--;siftDown(1);keys[size+1]= tmpKey;data[size+1]= tmpData;

}}

}

Size = 6tempKey = 130

Page 29: X 600 50 250 10 33 130 200 5 2 25 public void sort(){fac.ksu.edu.sa/sites/default/files/heapsort.pdfX 25 50 250 10 33 130 200 5 2 25 0 1 2 3 4 5 6 7 8 9 10 11 12 25 50 250 5 2 25 10

X 5 50 25 10 33 2 5 200 250 600

0 1 2 3 4 5 6 7 8 9 10 11 12

5

50 25

10 33 2

public void sort(){ int n= size;for(int i= 1; i < n; i++){

int tmpKey= keys[1];T tmpData= data[1];keys[1]= keys[size];data[1]= data[size];size--;siftDown(1);keys[size+1]= tmpKey;data[size+1]= tmpData;

}}

}

Size = 6tempKey = 130

Page 30: X 600 50 250 10 33 130 200 5 2 25 public void sort(){fac.ksu.edu.sa/sites/default/files/heapsort.pdfX 25 50 250 10 33 130 200 5 2 25 0 1 2 3 4 5 6 7 8 9 10 11 12 25 50 250 5 2 25 10

X 50 5 25 10 33 2 5 200 250 600

0 1 2 3 4 5 6 7 8 9 10 11 12

50

5 25

10 33 2

public void sort(){ int n= size;for(int i= 1; i < n; i++){

int tmpKey= keys[1];T tmpData= data[1];keys[1]= keys[size];data[1]= data[size];size--;siftDown(1);keys[size+1]= tmpKey;data[size+1]= tmpData;

}}

}

Size = 6tempKey = 130

Page 31: X 600 50 250 10 33 130 200 5 2 25 public void sort(){fac.ksu.edu.sa/sites/default/files/heapsort.pdfX 25 50 250 10 33 130 200 5 2 25 0 1 2 3 4 5 6 7 8 9 10 11 12 25 50 250 5 2 25 10

X 50 5 25 10 33 2 5 200 250 600

0 1 2 3 4 5 6 7 8 9 10 11 12

50

5 25

10 33 2

public void sort(){ int n= size;for(int i= 1; i < n; i++){

int tmpKey= keys[1];T tmpData= data[1];keys[1]= keys[size];data[1]= data[size];size--;siftDown(1);keys[size+1]= tmpKey;data[size+1]= tmpData;

}}

}

Size = 6tempKey = 130

Page 32: X 600 50 250 10 33 130 200 5 2 25 public void sort(){fac.ksu.edu.sa/sites/default/files/heapsort.pdfX 25 50 250 10 33 130 200 5 2 25 0 1 2 3 4 5 6 7 8 9 10 11 12 25 50 250 5 2 25 10

X 50 33 25 10 5 2 5 200 250 600

0 1 2 3 4 5 6 7 8 9 10 11 12

50

33 25

10 5 2

public void sort(){ int n= size;for(int i= 1; i < n; i++){

int tmpKey= keys[1];T tmpData= data[1];keys[1]= keys[size];data[1]= data[size];size--;siftDown(1);keys[size+1]= tmpKey;data[size+1]= tmpData;

}}

}

Size = 6tempKey = 130

Page 33: X 600 50 250 10 33 130 200 5 2 25 public void sort(){fac.ksu.edu.sa/sites/default/files/heapsort.pdfX 25 50 250 10 33 130 200 5 2 25 0 1 2 3 4 5 6 7 8 9 10 11 12 25 50 250 5 2 25 10

X 50 33 25 10 5 2 130 200 250 600

0 1 2 3 4 5 6 7 8 9 10 11 12

50

33 25

10 5 2

public void sort(){ int n= size;for(int i= 1; i < n; i++){

int tmpKey= keys[1];T tmpData= data[1];keys[1]= keys[size];data[1]= data[size];size--;siftDown(1);keys[size+1]= tmpKey;data[size+1]= tmpData;

}}

}

Size = 6tempKey = 130

Page 34: X 600 50 250 10 33 130 200 5 2 25 public void sort(){fac.ksu.edu.sa/sites/default/files/heapsort.pdfX 25 50 250 10 33 130 200 5 2 25 0 1 2 3 4 5 6 7 8 9 10 11 12 25 50 250 5 2 25 10

X 50 33 25 10 5 2 130 200 250 600

0 1 2 3 4 5 6 7 8 9 10 11 12

50

33 25

10 5 2

public void sort(){ int n= size;for(int i= 1; i < n; i++){

int tmpKey= keys[1];T tmpData= data[1];keys[1]= keys[size];data[1]= data[size];size--;siftDown(1);keys[size+1]= tmpKey;data[size+1]= tmpData;

}}

}

Size = 6tempKey = 50

Page 35: X 600 50 250 10 33 130 200 5 2 25 public void sort(){fac.ksu.edu.sa/sites/default/files/heapsort.pdfX 25 50 250 10 33 130 200 5 2 25 0 1 2 3 4 5 6 7 8 9 10 11 12 25 50 250 5 2 25 10

X 2 33 25 10 5 2 130 200 250 600

0 1 2 3 4 5 6 7 8 9 10 11 12

2

33 25

10 5 2

public void sort(){ int n= size;for(int i= 1; i < n; i++){

int tmpKey= keys[1];T tmpData= data[1];keys[1]= keys[size];data[1]= data[size];size--;siftDown(1);keys[size+1]= tmpKey;data[size+1]= tmpData;

}}

}

Size = 6tempKey = 50

Page 36: X 600 50 250 10 33 130 200 5 2 25 public void sort(){fac.ksu.edu.sa/sites/default/files/heapsort.pdfX 25 50 250 10 33 130 200 5 2 25 0 1 2 3 4 5 6 7 8 9 10 11 12 25 50 250 5 2 25 10

X 2 33 25 10 5 2 130 200 250 600

0 1 2 3 4 5 6 7 8 9 10 11 12

2

33 25

10 5

public void sort(){ int n= size;for(int i= 1; i < n; i++){

int tmpKey= keys[1];T tmpData= data[1];keys[1]= keys[size];data[1]= data[size];size--;siftDown(1);keys[size+1]= tmpKey;data[size+1]= tmpData;

}}

}

Size = 5tempKey = 50

Page 37: X 600 50 250 10 33 130 200 5 2 25 public void sort(){fac.ksu.edu.sa/sites/default/files/heapsort.pdfX 25 50 250 10 33 130 200 5 2 25 0 1 2 3 4 5 6 7 8 9 10 11 12 25 50 250 5 2 25 10

X 2 33 25 10 5 2 130 200 250 600

0 1 2 3 4 5 6 7 8 9 10 11 12

2

33 25

10 5

public void sort(){ int n= size;for(int i= 1; i < n; i++){

int tmpKey= keys[1];T tmpData= data[1];keys[1]= keys[size];data[1]= data[size];size--;siftDown(1);keys[size+1]= tmpKey;data[size+1]= tmpData;

}}

}

Size = 5tempKey = 50

Page 38: X 600 50 250 10 33 130 200 5 2 25 public void sort(){fac.ksu.edu.sa/sites/default/files/heapsort.pdfX 25 50 250 10 33 130 200 5 2 25 0 1 2 3 4 5 6 7 8 9 10 11 12 25 50 250 5 2 25 10

X 33 2 25 10 5 2 130 200 250 600

0 1 2 3 4 5 6 7 8 9 10 11 12

33

2 25

10 5

public void sort(){ int n= size;for(int i= 1; i < n; i++){

int tmpKey= keys[1];T tmpData= data[1];keys[1]= keys[size];data[1]= data[size];size--;siftDown(1);keys[size+1]= tmpKey;data[size+1]= tmpData;

}}

}

Size = 5tempKey = 50

Page 39: X 600 50 250 10 33 130 200 5 2 25 public void sort(){fac.ksu.edu.sa/sites/default/files/heapsort.pdfX 25 50 250 10 33 130 200 5 2 25 0 1 2 3 4 5 6 7 8 9 10 11 12 25 50 250 5 2 25 10

X 33 2 25 10 5 2 130 200 250 600

0 1 2 3 4 5 6 7 8 9 10 11 12

33

2 25

10 5

public void sort(){ int n= size;for(int i= 1; i < n; i++){

int tmpKey= keys[1];T tmpData= data[1];keys[1]= keys[size];data[1]= data[size];size--;siftDown(1);keys[size+1]= tmpKey;data[size+1]= tmpData;

}}

}

Size = 5tempKey = 50

Page 40: X 600 50 250 10 33 130 200 5 2 25 public void sort(){fac.ksu.edu.sa/sites/default/files/heapsort.pdfX 25 50 250 10 33 130 200 5 2 25 0 1 2 3 4 5 6 7 8 9 10 11 12 25 50 250 5 2 25 10

X 33 10 25 2 5 2 130 200 250 600

0 1 2 3 4 5 6 7 8 9 10 11 12

33

10 25

2 5

public void sort(){ int n= size;for(int i= 1; i < n; i++){

int tmpKey= keys[1];T tmpData= data[1];keys[1]= keys[size];data[1]= data[size];size--;siftDown(1);keys[size+1]= tmpKey;data[size+1]= tmpData;

}}

}

Size = 5tempKey = 50

Page 41: X 600 50 250 10 33 130 200 5 2 25 public void sort(){fac.ksu.edu.sa/sites/default/files/heapsort.pdfX 25 50 250 10 33 130 200 5 2 25 0 1 2 3 4 5 6 7 8 9 10 11 12 25 50 250 5 2 25 10

X 33 10 25 2 5 50 130 200 250 600

0 1 2 3 4 5 6 7 8 9 10 11 12

33

10 25

2 5

public void sort(){ int n= size;for(int i= 1; i < n; i++){

int tmpKey= keys[1];T tmpData= data[1];keys[1]= keys[size];data[1]= data[size];size--;siftDown(1);keys[size+1]= tmpKey;data[size+1]= tmpData;

}}

}

Size = 5tempKey = 50

Page 42: X 600 50 250 10 33 130 200 5 2 25 public void sort(){fac.ksu.edu.sa/sites/default/files/heapsort.pdfX 25 50 250 10 33 130 200 5 2 25 0 1 2 3 4 5 6 7 8 9 10 11 12 25 50 250 5 2 25 10

X 33 10 25 2 5 50 130 200 250 600

0 1 2 3 4 5 6 7 8 9 10 11 12

33

10 25

2 5

public void sort(){ int n= size;for(int i= 1; i < n; i++){

int tmpKey= keys[1];T tmpData= data[1];keys[1]= keys[size];data[1]= data[size];size--;siftDown(1);keys[size+1]= tmpKey;data[size+1]= tmpData;

}}

}

Size = 5tempKey = 33

Page 43: X 600 50 250 10 33 130 200 5 2 25 public void sort(){fac.ksu.edu.sa/sites/default/files/heapsort.pdfX 25 50 250 10 33 130 200 5 2 25 0 1 2 3 4 5 6 7 8 9 10 11 12 25 50 250 5 2 25 10

X 5 10 25 2 5 50 130 200 250 600

0 1 2 3 4 5 6 7 8 9 10 11 12

5

10 25

2

public void sort(){ int n= size;for(int i= 1; i < n; i++){

int tmpKey= keys[1];T tmpData= data[1];keys[1]= keys[size];data[1]= data[size];size--;siftDown(1);keys[size+1]= tmpKey;data[size+1]= tmpData;

}}

}

Size = 4tempKey = 33

Page 44: X 600 50 250 10 33 130 200 5 2 25 public void sort(){fac.ksu.edu.sa/sites/default/files/heapsort.pdfX 25 50 250 10 33 130 200 5 2 25 0 1 2 3 4 5 6 7 8 9 10 11 12 25 50 250 5 2 25 10

X 5 10 25 2 5 50 130 200 250 600

0 1 2 3 4 5 6 7 8 9 10 11 12

5

10 25

2

public void sort(){ int n= size;for(int i= 1; i < n; i++){

int tmpKey= keys[1];T tmpData= data[1];keys[1]= keys[size];data[1]= data[size];size--;siftDown(1);keys[size+1]= tmpKey;data[size+1]= tmpData;

}}

}

Size = 4tempKey = 33

Page 45: X 600 50 250 10 33 130 200 5 2 25 public void sort(){fac.ksu.edu.sa/sites/default/files/heapsort.pdfX 25 50 250 10 33 130 200 5 2 25 0 1 2 3 4 5 6 7 8 9 10 11 12 25 50 250 5 2 25 10

X 25 10 5 2 5 50 130 200 250 600

0 1 2 3 4 5 6 7 8 9 10 11 12

25

10 5

2

public void sort(){ int n= size;for(int i= 1; i < n; i++){

int tmpKey= keys[1];T tmpData= data[1];keys[1]= keys[size];data[1]= data[size];size--;siftDown(1);keys[size+1]= tmpKey;data[size+1]= tmpData;

}}

}

Size = 4tempKey = 33

Page 46: X 600 50 250 10 33 130 200 5 2 25 public void sort(){fac.ksu.edu.sa/sites/default/files/heapsort.pdfX 25 50 250 10 33 130 200 5 2 25 0 1 2 3 4 5 6 7 8 9 10 11 12 25 50 250 5 2 25 10

X 25 10 5 2 33 50 130 200 250 600

0 1 2 3 4 5 6 7 8 9 10 11 12

25

10 5

2

public void sort(){ int n= size;for(int i= 1; i < n; i++){

int tmpKey= keys[1];T tmpData= data[1];keys[1]= keys[size];data[1]= data[size];size--;siftDown(1);keys[size+1]= tmpKey;data[size+1]= tmpData;

}}

}

Size = 4tempKey = 33

Page 47: X 600 50 250 10 33 130 200 5 2 25 public void sort(){fac.ksu.edu.sa/sites/default/files/heapsort.pdfX 25 50 250 10 33 130 200 5 2 25 0 1 2 3 4 5 6 7 8 9 10 11 12 25 50 250 5 2 25 10

X 25 10 5 2 33 50 130 200 250 600

0 1 2 3 4 5 6 7 8 9 10 11 12

25

10 5

2

public void sort(){ int n= size;for(int i= 1; i < n; i++){

int tmpKey= keys[1];T tmpData= data[1];keys[1]= keys[size];data[1]= data[size];size--;siftDown(1);keys[size+1]= tmpKey;data[size+1]= tmpData;

}}

}

Size = 4tempKey = 25

Page 48: X 600 50 250 10 33 130 200 5 2 25 public void sort(){fac.ksu.edu.sa/sites/default/files/heapsort.pdfX 25 50 250 10 33 130 200 5 2 25 0 1 2 3 4 5 6 7 8 9 10 11 12 25 50 250 5 2 25 10

X 2 10 5 2 33 50 130 200 250 600

0 1 2 3 4 5 6 7 8 9 10 11 12

2

10 5

2

public void sort(){ int n= size;for(int i= 1; i < n; i++){

int tmpKey= keys[1];T tmpData= data[1];keys[1]= keys[size];data[1]= data[size];size--;siftDown(1);keys[size+1]= tmpKey;data[size+1]= tmpData;

}}

}

Size = 4tempKey = 25

Page 49: X 600 50 250 10 33 130 200 5 2 25 public void sort(){fac.ksu.edu.sa/sites/default/files/heapsort.pdfX 25 50 250 10 33 130 200 5 2 25 0 1 2 3 4 5 6 7 8 9 10 11 12 25 50 250 5 2 25 10

X 2 10 5 2 33 50 130 200 250 600

0 1 2 3 4 5 6 7 8 9 10 11 12

2

10 5

public void sort(){ int n= size;for(int i= 1; i < n; i++){

int tmpKey= keys[1];T tmpData= data[1];keys[1]= keys[size];data[1]= data[size];size--;siftDown(1);keys[size+1]= tmpKey;data[size+1]= tmpData;

}}

}

Size = 3tempKey = 25

Page 50: X 600 50 250 10 33 130 200 5 2 25 public void sort(){fac.ksu.edu.sa/sites/default/files/heapsort.pdfX 25 50 250 10 33 130 200 5 2 25 0 1 2 3 4 5 6 7 8 9 10 11 12 25 50 250 5 2 25 10

X 2 10 5 2 33 50 130 200 250 600

0 1 2 3 4 5 6 7 8 9 10 11 12

2

10 5

public void sort(){ int n= size;for(int i= 1; i < n; i++){

int tmpKey= keys[1];T tmpData= data[1];keys[1]= keys[size];data[1]= data[size];size--;siftDown(1);keys[size+1]= tmpKey;data[size+1]= tmpData;

}}

}

Size = 3tempKey = 25

Page 51: X 600 50 250 10 33 130 200 5 2 25 public void sort(){fac.ksu.edu.sa/sites/default/files/heapsort.pdfX 25 50 250 10 33 130 200 5 2 25 0 1 2 3 4 5 6 7 8 9 10 11 12 25 50 250 5 2 25 10

X 10 2 5 2 33 50 130 200 250 600

0 1 2 3 4 5 6 7 8 9 10 11 12

10

2 5

public void sort(){ int n= size;for(int i= 1; i < n; i++){

int tmpKey= keys[1];T tmpData= data[1];keys[1]= keys[size];data[1]= data[size];size--;siftDown(1);keys[size+1]= tmpKey;data[size+1]= tmpData;

}}

}

Size = 3tempKey = 25

Page 52: X 600 50 250 10 33 130 200 5 2 25 public void sort(){fac.ksu.edu.sa/sites/default/files/heapsort.pdfX 25 50 250 10 33 130 200 5 2 25 0 1 2 3 4 5 6 7 8 9 10 11 12 25 50 250 5 2 25 10

X 10 2 5 25 33 50 130 200 250 600

0 1 2 3 4 5 6 7 8 9 10 11 12

10

2 5

public void sort(){ int n= size;for(int i= 1; i < n; i++){

int tmpKey= keys[1];T tmpData= data[1];keys[1]= keys[size];data[1]= data[size];size--;siftDown(1);keys[size+1]= tmpKey;data[size+1]= tmpData;

}}

}

Size = 3tempKey = 25

Page 53: X 600 50 250 10 33 130 200 5 2 25 public void sort(){fac.ksu.edu.sa/sites/default/files/heapsort.pdfX 25 50 250 10 33 130 200 5 2 25 0 1 2 3 4 5 6 7 8 9 10 11 12 25 50 250 5 2 25 10

X 10 2 5 25 33 50 130 200 250 600

0 1 2 3 4 5 6 7 8 9 10 11 12

10

2 5

public void sort(){ int n= size;for(int i= 1; i < n; i++){

int tmpKey= keys[1];T tmpData= data[1];keys[1]= keys[size];data[1]= data[size];size--;siftDown(1);keys[size+1]= tmpKey;data[size+1]= tmpData;

}}

}

Size = 3tempKey = 10

Page 54: X 600 50 250 10 33 130 200 5 2 25 public void sort(){fac.ksu.edu.sa/sites/default/files/heapsort.pdfX 25 50 250 10 33 130 200 5 2 25 0 1 2 3 4 5 6 7 8 9 10 11 12 25 50 250 5 2 25 10

X 5 2 5 25 33 50 130 200 250 600

0 1 2 3 4 5 6 7 8 9 10 11 12

5

2 5

public void sort(){ int n= size;for(int i= 1; i < n; i++){

int tmpKey= keys[1];T tmpData= data[1];keys[1]= keys[size];data[1]= data[size];size--;siftDown(1);keys[size+1]= tmpKey;data[size+1]= tmpData;

}}

}

Size = 3tempKey = 10

Page 55: X 600 50 250 10 33 130 200 5 2 25 public void sort(){fac.ksu.edu.sa/sites/default/files/heapsort.pdfX 25 50 250 10 33 130 200 5 2 25 0 1 2 3 4 5 6 7 8 9 10 11 12 25 50 250 5 2 25 10

X 5 2 5 25 33 50 130 200 250 600

0 1 2 3 4 5 6 7 8 9 10 11 12

5

2

public void sort(){ int n= size;for(int i= 1; i < n; i++){

int tmpKey= keys[1];T tmpData= data[1];keys[1]= keys[size];data[1]= data[size];size--;siftDown(1);keys[size+1]= tmpKey;data[size+1]= tmpData;

}}

}

Size = 2tempKey = 10

Page 56: X 600 50 250 10 33 130 200 5 2 25 public void sort(){fac.ksu.edu.sa/sites/default/files/heapsort.pdfX 25 50 250 10 33 130 200 5 2 25 0 1 2 3 4 5 6 7 8 9 10 11 12 25 50 250 5 2 25 10

X 5 2 5 25 33 50 130 200 250 600

0 1 2 3 4 5 6 7 8 9 10 11 12

5

2

public void sort(){ int n= size;for(int i= 1; i < n; i++){

int tmpKey= keys[1];T tmpData= data[1];keys[1]= keys[size];data[1]= data[size];size--;siftDown(1);keys[size+1]= tmpKey;data[size+1]= tmpData;

}}

}

Size = 2tempKey = 10

Page 57: X 600 50 250 10 33 130 200 5 2 25 public void sort(){fac.ksu.edu.sa/sites/default/files/heapsort.pdfX 25 50 250 10 33 130 200 5 2 25 0 1 2 3 4 5 6 7 8 9 10 11 12 25 50 250 5 2 25 10

X 5 2 5 25 33 50 130 200 250 600

0 1 2 3 4 5 6 7 8 9 10 11 12

5

2

public void sort(){ int n= size;for(int i= 1; i < n; i++){

int tmpKey= keys[1];T tmpData= data[1];keys[1]= keys[size];data[1]= data[size];size--;siftDown(1);keys[size+1]= tmpKey;data[size+1]= tmpData;

}}

}

Size = 2tempKey = 10

Page 58: X 600 50 250 10 33 130 200 5 2 25 public void sort(){fac.ksu.edu.sa/sites/default/files/heapsort.pdfX 25 50 250 10 33 130 200 5 2 25 0 1 2 3 4 5 6 7 8 9 10 11 12 25 50 250 5 2 25 10

X 5 2 10 25 33 50 130 200 250 600

0 1 2 3 4 5 6 7 8 9 10 11 12

5

2

public void sort(){ int n= size;for(int i= 1; i < n; i++){

int tmpKey= keys[1];T tmpData= data[1];keys[1]= keys[size];data[1]= data[size];size--;siftDown(1);keys[size+1]= tmpKey;data[size+1]= tmpData;

}}

}

Size = 2tempKey = 10

Page 59: X 600 50 250 10 33 130 200 5 2 25 public void sort(){fac.ksu.edu.sa/sites/default/files/heapsort.pdfX 25 50 250 10 33 130 200 5 2 25 0 1 2 3 4 5 6 7 8 9 10 11 12 25 50 250 5 2 25 10

X 5 2 10 25 33 50 130 200 250 600

0 1 2 3 4 5 6 7 8 9 10 11 12

5

2

public void sort(){ int n= size;for(int i= 1; i < n; i++){

int tmpKey= keys[1];T tmpData= data[1];keys[1]= keys[size];data[1]= data[size];size--;siftDown(1);keys[size+1]= tmpKey;data[size+1]= tmpData;

}}

}

Size = 2tempKey = 5

Page 60: X 600 50 250 10 33 130 200 5 2 25 public void sort(){fac.ksu.edu.sa/sites/default/files/heapsort.pdfX 25 50 250 10 33 130 200 5 2 25 0 1 2 3 4 5 6 7 8 9 10 11 12 25 50 250 5 2 25 10

X 2 2 10 25 33 50 130 200 250 600

0 1 2 3 4 5 6 7 8 9 10 11 12

2

2

public void sort(){ int n= size;for(int i= 1; i < n; i++){

int tmpKey= keys[1];T tmpData= data[1];keys[1]= keys[size];data[1]= data[size];size--;siftDown(1);keys[size+1]= tmpKey;data[size+1]= tmpData;

}}

}

Size = 2tempKey = 5

Page 61: X 600 50 250 10 33 130 200 5 2 25 public void sort(){fac.ksu.edu.sa/sites/default/files/heapsort.pdfX 25 50 250 10 33 130 200 5 2 25 0 1 2 3 4 5 6 7 8 9 10 11 12 25 50 250 5 2 25 10

X 2 2 10 25 33 50 130 200 250 600

0 1 2 3 4 5 6 7 8 9 10 11 12

2

public void sort(){ int n= size;for(int i= 1; i < n; i++){

int tmpKey= keys[1];T tmpData= data[1];keys[1]= keys[size];data[1]= data[size];size--;siftDown(1);keys[size+1]= tmpKey;data[size+1]= tmpData;

}}

}

Size = 1tempKey = 5

Page 62: X 600 50 250 10 33 130 200 5 2 25 public void sort(){fac.ksu.edu.sa/sites/default/files/heapsort.pdfX 25 50 250 10 33 130 200 5 2 25 0 1 2 3 4 5 6 7 8 9 10 11 12 25 50 250 5 2 25 10

X 2 2 10 25 33 50 130 200 250 600

0 1 2 3 4 5 6 7 8 9 10 11 12

2

public void sort(){ int n= size;for(int i= 1; i < n; i++){

int tmpKey= keys[1];T tmpData= data[1];keys[1]= keys[size];data[1]= data[size];size--;siftDown(1);keys[size+1]= tmpKey;data[size+1]= tmpData;

}}

}

Size = 1tempKey = 5

Page 63: X 600 50 250 10 33 130 200 5 2 25 public void sort(){fac.ksu.edu.sa/sites/default/files/heapsort.pdfX 25 50 250 10 33 130 200 5 2 25 0 1 2 3 4 5 6 7 8 9 10 11 12 25 50 250 5 2 25 10

X 2 5 10 25 33 50 130 200 250 600

0 1 2 3 4 5 6 7 8 9 10 11 12

2

public void sort(){ int n= size;for(int i= 1; i < n; i++){

int tmpKey= keys[1];T tmpData= data[1];keys[1]= keys[size];data[1]= data[size];size--;siftDown(1);keys[size+1]= tmpKey;data[size+1]= tmpData;

}}

}

Size = 1tempKey = 5

Page 64: X 600 50 250 10 33 130 200 5 2 25 public void sort(){fac.ksu.edu.sa/sites/default/files/heapsort.pdfX 25 50 250 10 33 130 200 5 2 25 0 1 2 3 4 5 6 7 8 9 10 11 12 25 50 250 5 2 25 10

X 2 5 10 25 33 50 130 200 250 600

0 1 2 3 4 5 6 7 8 9 10 11 12

2

public void sort(){ int n= size;for(int i= 1; i < n; i++){

int tmpKey= keys[1];T tmpData= data[1];keys[1]= keys[size];data[1]= data[size];size--;siftDown(1);keys[size+1]= tmpKey;data[size+1]= tmpData;

}}

}

Size = 1tempKey = 5