25 lines
556 B
Plaintext
25 lines
556 B
Plaintext
public void shell() {
|
|
int i, j;
|
|
int temp;
|
|
|
|
int h = 1;
|
|
while (h <= elementos / 3) {
|
|
// Sumatorio de (h * 3 + 1)
|
|
h = h * 3 + 1;
|
|
}
|
|
|
|
// Mientras que h es mayor que 0.
|
|
while (h > 0) {
|
|
for (i = h; i < elementos; i++) {
|
|
temp = array[i];
|
|
j = i;
|
|
while (j > h-1 && array[j-h] >= temp) {
|
|
// Ordenar dento el "shell"
|
|
array[j] = array[j-h];
|
|
j -= h;
|
|
}
|
|
array[j] = temp;
|
|
}
|
|
h = (h-1) / 3;
|
|
}
|
|
} |