Documentos de Académico
Documentos de Profesional
Documentos de Cultura
40 20 10 80 60 50 7 30 100
Partir el areglo
Dado el pivote, partir los eleentos del arreglo tal que
resulten dos subarreglos consistentes de:
1. Un sub-arreglo que contiene los elementos >= pivote
2. Otro sub-arreglo que contiene los elementos
elementos < pivote
indice_i indice_j
1. Mientras vector[indice_i] <= vector[pivote]
++i
indice_pivote = 0 40 20 10 80 60 50 7 30 100
[0] [1] [2] [3] [4] [5] [6] [7] [8]
indice_i indice_j
1. Mientras vector[indice_i] <= vector[pivote]
++i
indice_pivote = 0 40 20 10 80 60 50 7 30 100
[0] [1] [2] [3] [4] [5] [6] [7] [8]
indice_i indice_j
1. Mientras vector[indice_i] <= vector[pivote]
++i
indice_pivote = 0 40 20 10 80 60 50 7 30 100
[0] [1] [2] [3] [4] [5] [6] [7] [8]
indice_i indice_j
1.Mientras vector[indice_i] <= vector[pivote]
++i
2. Mientras vector[indice_j] > vector[pivote]
j--
indice_pivote = 0 40 20 10 80 60 50 7 30 100
[0] [1] [2] [3] [4] [5] [6] [7] [8]
indice_i indice_j
1.Mientras vector[indice_i] <= vector[pivote]
++i
2. Mientras vector[indice_j] > vector[pivote]
j--
indice_pivote = 0 40 20 10 80 60 50 7 30 100
[0] [1] [2] [3] [4] [5] [6] [7] [8]
indice_i indice_j
1.Mientras vector[indice_i] <= vector[pivote]
++i
2. Mientras vector[indice_j] > vector[pivote]
j--
3. SI i < j
cambiar vector[i] y vector[j]
indice_pivote = 0 40 20 10 80 60 50 7 30 100
[0] [1] [2] [3] [4] [5] [6] [7] [8]
indice_i indice_j
1.Mientras vector[indice_i] <= vector[pivote]
++i
2. Mientras vector[indice_j] > vector[pivote]
j--
3. SI i < j
cambiar vector[i] y vector[j]
indice_pivote = 0 40 20 10 30 60 50 7 80 100
[0] [1] [2] [3] [4] [5] [6] [7] [8]
indice_i indice_j
1.Mientras vector[indice_i] <= vector[pivote]
++i
2. Mientras vector[indice_j] > vector[pivote]
j--
3. SI i < j
cambiar vector[i] y vector[j]
4. Mientras j> i, ir a 1.
indice_pivote = 0 40 20 10 30 60 50 7 80 100
[0] [1] [2] [3] [4] [5] [6] [7] [8]
indice_i indice_j
1.Mientras vector[indice_i] <= vector[pivote]
++i
2. Mientras vector[indice_j] > vector[pivote]
j--
3. SI i < j
cambiar vector[i] y vector[j]
4. Mientras j> i, ir a 1.
indice_pivote = 0 40 20 10 30 60 50 7 80 100
[0] [1] [2] [3] [4] [5] [6] [7] [8]
indice_i indice_j
1.Mientras vector[indice_i] <= indice[pivote]
++i
2. Mientras vector[indice_j] > vector[pivote]
j--
3. SI i < j
cambiar vector[i] y vector[j]
4. Mientras j> i, ir a 1.
indice_pivote = 0 40 20 10 30 60 50 7 80 100
[0] [1] [2] [3] [4] [5] [6] [7] [8]
indice_i indice_j
1.Mientras vector[indice_i] <= vector[pivote]
++i
2. Mientras vector[indice_j] > vector[pivote]
j--
3. SI i < j
cambiar vector[i] y vector[j]
4. Mientras j> i, ir a 1.
indice_pivote = 0 40 20 10 30 60 50 7 80 100
[0] [1] [2] [3] [4] [5] [6] [7] [8]
indice_i indice_j
1.Mientras vector[indice_i] <= vector[pivote]
++i
2. Mientras vector[indice_j] > vector[pivote]
j--
3. SI i < j
cambiar vector[i] y vector[j]
4. Mientras j> i, ir a 1.
indice_pivote = 0 40 20 10 30 60 50 7 80 100
[0] [1] [2] [3] [4] [5] [6] [7] [8]
indice_i indice_j
1.Mientras vector[indice_i] <= vector[pivote]
++i
2. Mientras vector[indice_j] > vector[pivote]
j--
3. SI i < j
cambiar vector[i] y vector[j]
4. Mientras j> i, ir a 1.
indice_pivote = 0 40 20 10 30 60 50 7 80 100
[0] [1] [2] [3] [4] [5] [6] [7] [8]
indice_i indice_j
1.Mientras vector[indice_i] <= vector[pivote]
++i
2. Mientras vector[indice_j] > vector[pivote]
j--
3. SI i < j
cambiar vector[i] y vector[j]
4. Mientras j> i, ir a 1.
indice_pivote = 0 40 20 10 30 7 50 60 80 100
[0] [1] [2] [3] [4] [5] [6] [7] [8]
indice_i indice_j
1.Mientras vector[indice_i] <= vector[pivote]
++i
2. Mientras vector[indice_j] > vector[pivote]
j--
3. SI i < j
cambiar vector[i] y vector[j]
4. Mientras j> i, ir a 1.
indice_pivote = 0 40 20 10 30 7 50 60 80 100
[0] [1] [2] [3] [4] [5] [6] [7] [8]
indice_i indice_j
1.Mientras vector[indice_i] <= vector[pivote]
++i
2. Mientras vector[indice_j] > vector[pivote]
j--
3. SI i < j
cambiar vector[i] y vector[j]
4. Mientras j> i, ir a 1.
indice_pivote = 0 40 20 10 30 7 50 60 80 100
[0] [1] [2] [3] [4] [5] [6] [7] [8]
indice_i indice_j
1.Mientras vector[indice_i] <= vector[pivote]
++i
2. Mientras vector[indice_j] > vector[pivote]
j--
3. SI i < j
cambiar vector[i] y vector[j]
4. Mientras j> i, ir a 1.
indice_pivote = 0 40 20 10 30 7 50 60 80 100
[0] [1] [2] [3] [4] [5] [6] [7] [8]
indice_i indice_j
1.Mientras vector[indice_i] <= vector[pivote]
++i
2. Mientras vector[indice_j] > vector[pivote]
j--
3. SI i < j
cambiar vector[i] y vector[j]
4. Mientras j> i, ir a 1.
indice_pivote = 0 40 20 10 30 7 50 60 80 100
[0] [1] [2] [3] [4] [5] [6] [7] [8]
indice_i indice_j
1.Mientras vector[indice_i] <= vector[pivote]
++i
2. Mientras vector[indice_j] > vector[pivote]
j--
3. SI i < j
cambiar vector[i] y vector[j]
4. Mientras j> i, ir a 1.
indice_pivote = 0 40 20 10 30 7 50 60 80 100
[0] [1] [2] [3] [4] [5] [6] [7] [8]
indice_i indice_j
1.Mientras vector[indice_i] <= vector[pivote]
++i
2. Mientras vector[indice_j] > vector[pivote]
j--
3. SI i < j
cambiar vector[i] y vector[j]
4. Mientras j> i, ir a 1.
indice_pivote = 0 40 20 10 30 7 50 60 80 100
[0] [1] [2] [3] [4] [5] [6] [7] [8]
indice_i indice_j
1.Mientras vector[indice_i] <= vector[pivote]
++i
2. Mientras vector[indice_j] > vector[pivote]
j--
3. SI i < j
cambiar vector[i] y vector[j]
4. Mientras j> i, ir a 1.
indice_pivote = 0 40 20 10 30 7 50 60 80 100
[0] [1] [2] [3] [4] [5] [6] [7] [8]
indice_i indice_j
1.Mientras vector[indice_i] <= vector[pivote]
++i
2. Mientras vector[indice_j] > vector[pivote]
j--
3. SI i < j
cambiar vector[i] y vector[j]
4. Mientras j> i, ir a 1.
indice_pivote = 0 40 20 10 30 7 50 60 80 100
[0] [1] [2] [3] [4] [5] [6] [7] [8]
indice_i indice_j
1.Mientras vector[indice_i] <= vector[pivote]
++i
2. Mientras vector[indice_j] > vector[pivote]
j--
3. SI i < j
cambiar vector[i] y vector[j]
4. Mientras j> i, ir a 1.
indice_pivote = 0 40 20 10 30 7 50 60 80 100
[0] [1] [2] [3] [4] [5] [6] [7] [8]
indice_i indice_j
1.Mientras vector[indice_i] <= vector[pivote]
++i
2. Mientras vector[indice_j] > vector[pivote]
j--
3. SI i < j
cambiar vector[i] y vector[j]
4. Mientras j> i, ir a 1.
5. cambiar vector[j] y vector[pivote]
indice_pivote = 0 40 20 10 30 7 50 60 80 100
[0] [1] [2] [3] [4] [5] [6] [7] [8]
indice_i indice_j
1.Mientras vector[indice_i] <= vector[pivote]
++i
2. Mientras vector[indice_j] > vector[pivote]
j--
3. SI i < j
cambiar vector[i] y vector[j]
4. Mientras j> i, ir a 1.
5. cambiar vector[j] y vector[pivote]
indice_pivote = 4 7 20 10 30 40 50 60 80 100
[0] [1] [2] [3] [4] [5] [6] [7] [8]
indice_i indice_j
Resultado de la Partición
7 20 10 30 40 50 60 80 100
[0] [1] [2] [3] [4] [5] [6] [7] [8]
7 20 10 30 40 50 60 80 100
[0] [1] [2] [3] [4] [5] [6] [7] [8]
}
} while (i<=j);
if(primero<j) ordenarQuicksort(vector,primero, j);
if(ultimo>i) ordenarQuicksort(vector,i, ultimo);
}