Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
Estructuras de Datos I Ordenamientos Iterativos Shell Sort Iterativo Basado en intercambios Diferencial decremental Consiste en encontrar el menor de todos los elementos del vector e intercambiarlo con el que está en la primera posición. Luego el segundo mas pequeño, y así sucesivamente hasta ordenarlo todo. 54 43 1 73 44 Shell Sort 1 43 54 73 44 Shell Sort 1 43 54 73 44 Shell Sort 1 43 54 73 44 Shell Sort 1 43 54 73 44 Shell Sort 1 43 54 73 44 Shell Sort 1 43 54 73 44 Shell Sort 1 43 54 44 73 Shell Sort 1 43 54 44 73 Shell Sort 1 43 54 44 73 Shell Sort 1 43 54 44 73 Shell Sort 1 43 54 44 73 Shell Sort 1 43 54 44 73 Shell Sort 1 43 54 44 73 Shell Sort 1 43 54 44 73 Shell Sort 1 43 54 44 73 Shell Sort 1 43 54 44 73 Shell Sort Función: ShellSort Recibe: datos[ ], ultInd Regresa: nada factor = 1 / 2 dif = (ultInd + 1) * factor mientras dif > 0 i = dif mientras i <= ultInd J= i mientras J >= dif AND datos[J - dif] > datos[J] intercambiar datos[J-dif] por datos[J] J = J – 1 fin mientras i = i +1 fin mientras dif = dif * factor fin mientras Shell Sort 54 43 1 73 44 4 ultInd dif factor 0 1 2 3 4 J i Función: ShellSort Recibe: datos[ ], ultInd Regresa: nada factor = 1 / 2 dif = (ultInd + 1) * factor mientras dif > 0 i = dif mientras i <= ultInd J= i mientras J >= dif AND datos[J - dif] > datos[J] intercambiar datos[J-dif] por datos[J] J = J – 1 fin mientras i = i +1 fin mientras dif = dif * factor fin mientras 54 43 1 73 44 4 0.5 ultInd dif factor 0 1 2 3 4 J i Función: ShellSort Recibe: datos[ ], ultInd Regresa: nada factor = 1 / 2 dif = (ultInd + 1) * factor mientras dif > 0 i = dif mientras i <= ultInd J= i mientras J >= dif AND datos[J - dif] > datos[J] intercambiar datos[J-dif] por datos[J] J = J – 1 fin mientras i = i +1 fin mientras dif = dif * factor fin mientras 54 43 1 73 44 4 0.5 2 ultInd dif factor 0 1 2 3 4 J i Función: ShellSort Recibe: datos[ ], ultInd Regresa: nada factor = 1 / 2 dif = (ultInd + 1) * factor mientras dif > 0 i = dif mientras i <= ultInd J= i mientras J >= dif AND datos[J - dif] > datos[J] intercambiar datos[J-dif] por datos[J] J = J – 1 fin mientras i = i +1 fin mientras dif = dif * factor fin mientras 54 43 1 73 44 4 0.5 2 ultInd dif factor 0 1 2 3 4 J i Función: ShellSort Recibe: datos[ ], ultInd Regresa: nada factor = 1 / 2 dif = (ultInd + 1) * factor mientras dif > 0 i = dif mientras i <= ultInd J= i mientras J >= dif AND datos[J - dif] > datos[J] intercambiar datos[J-dif] por datos[J] J = J – 1 fin mientras i = i +1 fin mientras dif = dif * factor fin mientras 54 43 1 73 44 4 0.5 2 ultInd dif factor 0 1 2 3 4 2 J i Función: ShellSort Recibe: datos[ ], ultInd Regresa: nada factor = 1 / 2 dif = (ultInd + 1) * factor mientras dif > 0 i = dif mientras i <= ultInd J= i mientras J >= dif AND datos[J - dif] > datos[J] intercambiar datos[J-dif] por datos[J] J = J – 1 fin mientras i = i +1 fin mientras dif = dif * factor fin mientras 54 43 1 73 44 4 0.5 2 ultInd dif factor 0 1 2 3 4 2 J i Función: ShellSort Recibe: datos[ ], ultInd Regresa: nada factor = 1 / 2 dif = (ultInd + 1) * factor mientras dif > 0 i = dif mientras i <= ultInd J= i mientras J >= dif AND datos[J - dif] > datos[J] intercambiar datos[J-dif] por datos[J] J = J – 1 fin mientras i = i +1 fin mientras dif = dif * factor fin mientras 54 43 1 73 44 4 0.5 2 ultInd dif factor 0 1 2 3 4 2 2 J i Función: ShellSort Recibe: datos[ ], ultInd Regresa: nada factor = 1 / 2 dif = (ultInd + 1) * factor mientras dif > 0 i = dif mientras i <= ultInd J= i mientras J >= dif AND datos[J - dif] > datos[J] intercambiar datos[J-dif] por datos[J] J = J – 1 fin mientras i = i +1 fin mientras dif = dif * factor fin mientras 54 43 1 73 44 4 0.5 2 ultInd dif factor 0 1 2 3 4 2 2 J i Función: ShellSort Recibe: datos[ ], ultInd Regresa: nada factor = 1 / 2 dif = (ultInd + 1) * factor mientras dif > 0 i = dif mientras i <= ultInd J= i mientras J >= dif AND datos[J - dif] > datos[J] intercambiar datos[J-dif] por datos[J] J = J – 1 fin mientras i = i +1 fin mientras dif = dif * factor fin mientras 54 43 1 73 44 4 0.5 2 ultInd dif factor 0 1 2 3 4 3 2 J i Función: ShellSort Recibe: datos[ ], ultInd Regresa: nada factor = 1 / 2 dif = (ultInd + 1) * factor mientras dif > 0 i = dif mientras i <= ultInd J= i mientras J >= dif AND datos[J - dif] > datos[J] intercambiar datos[J-dif] por datos[J] J = J – 1 fin mientras i = i +1 fin mientras dif = dif * factor fin mientras 54 43 1 73 44 4 0.5 2 ultInd dif factor 0 1 2 3 4 3 2 J i Función: ShellSort Recibe: datos[ ], ultInd Regresa: nada factor = 1 / 2 dif = (ultInd + 1) * factor mientras dif > 0 i = dif mientras i <= ultInd J= i mientras J >= dif AND datos[J - dif] > datos[J] intercambiar datos[J-dif] por datos[J] J = J – 1 fin mientras i = i +1 fin mientras dif = dif * factor fin mientras 54 43 1 73 44 4 0.5 2 ultInd dif factor 0 1 2 3 4 3 3 J i Función: ShellSort Recibe: datos[ ], ultInd Regresa: nada factor = 1 / 2 dif = (ultInd + 1) * factor mientras dif > 0 i = dif mientras i <= ultInd J= i mientras J >= dif AND datos[J - dif] > datos[J] intercambiar datos[J-dif] por datos[J] J = J – 1 fin mientras i = i +1 fin mientras dif = dif * factor fin mientras 54 43 1 73 44 4 0.5 2 ultInd dif factor 0 1 2 3 4 3 3 J i Función: ShellSort Recibe: datos[ ], ultInd Regresa: nada factor = 1 / 2 dif = (ultInd + 1) * factor mientras dif > 0 i = dif mientras i <= ultInd J= i mientras J >= dif AND datos[J - dif] > datos[J] intercambiar datos[J-dif] por datos[J] J = J – 1 fin mientras i = i +1 fin mientras dif = dif * factor fin mientras 54 1 43 73 44 4 0.5 2 ultInd dif factor 0 1 2 3 4 3 3 J i Función: ShellSort Recibe: datos[ ], ultInd Regresa: nada factor = 1 / 2 dif = (ultInd + 1) * factor mientras dif > 0 i = dif mientras i <= ultInd J= i mientras J >= dif AND datos[J - dif] > datos[J] intercambiar datos[J-dif] por datos[J] J = J – 1 fin mientras i = i +1 fin mientras dif = dif * factor fin mientras 54 1 43 73 44 4 0.5 2 ultInd dif factor 0 1 2 3 4 3 2 J i Función: ShellSort Recibe: datos[ ], ultInd Regresa: nada factor = 1 / 2 dif = (ultInd + 1) * factor mientras dif > 0 i = dif mientras i <= ultInd J= i mientras J >= dif AND datos[J - dif] > datos[J] intercambiar datos[J-dif] por datos[J] J = J – 1 fin mientras i = i +1 fin mientras dif = dif * factor fin mientras 54 1 43 73 44 4 0.5 2 ultInd dif factor 0 1 2 3 4 3 2 J i Función: ShellSort Recibe: datos[ ], ultInd Regresa: nada factor = 1 / 2 dif = (ultInd + 1) * factor mientras dif > 0 i = dif mientras i <= ultInd J= i mientras J >= dif AND datos[J - dif] > datos[J] intercambiar datos[J-dif] por datos[J] J = J – 1 fin mientras i = i +1 fin mientras dif = dif * factor fin mientras 54 1 43 73 44 4 0.5 2 ultInd dif factor 0 1 2 3 4 4 2 J i Función: ShellSort Recibe: datos[ ], ultInd Regresa: nada factor = 1 / 2 dif = (ultInd + 1) * factor mientras dif > 0 i = dif mientras i <= ultInd J= i mientras J >= dif AND datos[J - dif] > datos[J] intercambiar datos[J-dif] por datos[J] J = J – 1 fin mientras i = i +1 fin mientras dif = dif * factor fin mientras 54 1 43 73 44 4 0.5 2 ultInd dif factor 0 1 2 3 4 4 2 J i Función: ShellSort Recibe: datos[ ], ultInd Regresa: nada factor = 1 / 2 dif = (ultInd + 1) * factor mientras dif > 0 i = dif mientras i <= ultInd J= i mientras J >= dif AND datos[J - dif] > datos[J] intercambiar datos[J-dif] por datos[J] J = J – 1 fin mientras i = i +1 fin mientras dif = dif * factor fin mientras54 1 43 73 44 4 0.5 2 ultInd dif factor 0 1 2 3 4 4 4 J i Función: ShellSort Recibe: datos[ ], ultInd Regresa: nada factor = 1 / 2 dif = (ultInd + 1) * factor mientras dif > 0 i = dif mientras i <= ultInd J= i mientras J >= dif AND datos[J - dif] > datos[J] intercambiar datos[J-dif] por datos[J] J = J – 1 fin mientras i = i +1 fin mientras dif = dif * factor fin mientras 54 1 43 73 44 4 0.5 2 ultInd dif factor 0 1 2 3 4 4 4 J i Función: ShellSort Recibe: datos[ ], ultInd Regresa: nada factor = 1 / 2 dif = (ultInd + 1) * factor mientras dif > 0 i = dif mientras i <= ultInd J= i mientras J >= dif AND datos[J - dif] > datos[J] intercambiar datos[J-dif] por datos[J] J = J – 1 fin mientras i = i +1 fin mientras dif = dif * factor fin mientras 54 1 43 44 73 4 0.5 2 ultInd dif factor 0 1 2 3 4 4 4 J i Función: ShellSort Recibe: datos[ ], ultInd Regresa: nada factor = 1 / 2 dif = (ultInd + 1) * factor mientras dif > 0 i = dif mientras i <= ultInd J= i mientras J >= dif AND datos[J - dif] > datos[J] intercambiar datos[J-dif] por datos[J] J = J – 1 fin mientras i = i +1 fin mientras dif = dif * factor fin mientras 54 1 43 44 73 4 0.5 2 ultInd dif factor 0 1 2 3 4 4 3 J i Función: ShellSort Recibe: datos[ ], ultInd Regresa: nada factor = 1 / 2 dif = (ultInd + 1) * factor mientras dif > 0 i = dif mientras i <= ultInd J= i mientras J >= dif AND datos[J - dif] > datos[J] intercambiar datos[J-dif] por datos[J] J = J – 1 fin mientras i = i +1 fin mientras dif = dif * factor fin mientras 54 1 43 44 73 4 0.5 2 ultInd dif factor 0 1 2 3 4 4 3 J i Función: ShellSort Recibe: datos[ ], ultInd Regresa: nada factor = 1 / 2 dif = (ultInd + 1) * factor mientras dif > 0 i = dif mientras i <= ultInd J= i mientras J >= dif AND datos[J - dif] > datos[J] intercambiar datos[J-dif] por datos[J] J = J – 1 fin mientras i = i +1 fin mientras dif = dif * factor fin mientras 54 1 43 44 73 4 0.5 2 ultInd dif factor 0 1 2 3 4 5 3 J i Función: ShellSort Recibe: datos[ ], ultInd Regresa: nada factor = 1 / 2 dif = (ultInd + 1) * factor mientras dif > 0 i = dif mientras i <= ultInd J= i mientras J >= dif AND datos[J - dif] > datos[J] intercambiar datos[J-dif] por datos[J] J = J – 1 fin mientras i = i +1 fin mientras dif = dif * factor fin mientras 54 1 43 44 73 4 0.5 2 ultInd dif factor 0 1 2 3 4 5 3 J i Función: ShellSort Recibe: datos[ ], ultInd Regresa: nada factor = 1 / 2 dif = (ultInd + 1) * factor mientras dif > 0 i = dif mientras i <= ultInd J= i mientras J >= dif AND datos[J - dif] > datos[J] intercambiar datos[J-dif] por datos[J] J = J – 1 fin mientras i = i +1 fin mientras dif = dif * factor fin mientras 54 1 43 44 73 4 0.5 1 ultInd dif factor 0 1 2 3 4 5 3 J i Función: ShellSort Recibe: datos[ ], ultInd Regresa: nada factor = 1 / 2 dif = (ultInd + 1) * factor mientras dif > 0 i = dif mientras i <= ultInd J= i mientras J >= dif AND datos[J - dif] > datos[J] intercambiar datos[J-dif] por datos[J] J = J – 1 fin mientras i = i +1 fin mientras dif = dif * factor fin mientras 54 1 43 44 73 4 0.5 1 ultInd dif factor 0 1 2 3 4 5 3 J i Función: ShellSort Recibe: datos[ ], ultInd Regresa: nada factor = 1 / 2 dif = (ultInd + 1) * factor mientras dif > 0 i = dif mientras i <= ultInd J= i mientras J >= dif AND datos[J - dif] > datos[J] intercambiar datos[J-dif] por datos[J] J = J – 1 fin mientras i = i +1 fin mientras dif = dif * factor fin mientras 54 1 43 44 73 4 0.5 1 ultInd dif factor 0 1 2 3 4 1 3 J i Función: ShellSort Recibe: datos[ ], ultInd Regresa: nada factor = 1 / 2 dif = (ultInd + 1) * factor mientras dif > 0 i = dif mientras i <= ultInd J= i mientras J >= dif AND datos[J - dif] > datos[J] intercambiar datos[J-dif] por datos[J] J = J – 1 fin mientras i = i +1 fin mientras dif = dif * factor fin mientras 54 1 43 44 73 4 0.5 1 ultInd dif factor 0 1 2 3 4 1 3 J i Función: ShellSort Recibe: datos[ ], ultInd Regresa: nada factor = 1 / 2 dif = (ultInd + 1) * factor mientras dif > 0 i = dif mientras i <= ultInd J= i mientras J >= dif AND datos[J - dif] > datos[J] intercambiar datos[J-dif] por datos[J] J = J – 1 fin mientras i = i +1 fin mientras dif = dif * factor fin mientras 54 1 43 44 73 4 0.5 1 ultInd dif factor 0 1 2 3 4 1 1 J i Función: ShellSort Recibe: datos[ ], ultInd Regresa: nada factor = 1 / 2 dif = (ultInd + 1) * factor mientras dif > 0 i = dif mientras i <= ultInd J= i mientras J >= dif AND datos[J - dif] > datos[J] intercambiar datos[J-dif] por datos[J] J = J – 1 fin mientras i = i +1 fin mientras dif = dif * factor fin mientras 54 1 43 44 73 4 0.5 1 ultInd dif factor 0 1 2 3 4 1 1 J i Función: ShellSort Recibe: datos[ ], ultInd Regresa: nada factor = 1 / 2 dif = (ultInd + 1) * factor mientras dif > 0 i = dif mientras i <= ultInd J= i mientras J >= dif AND datos[J - dif] > datos[J] intercambiar datos[J-dif] por datos[J] J = J – 1 fin mientras i = i +1 fin mientras dif = dif * factor fin mientras 1 54 43 44 73 4 0.5 1 ultInd dif factor 0 1 2 3 4 1 1 J i Función: ShellSort Recibe: datos[ ], ultInd Regresa: nada factor = 1 / 2 dif = (ultInd + 1) * factor mientras dif > 0 i = dif mientras i <= ultInd J= i mientras J >= dif AND datos[J - dif] > datos[J] intercambiar datos[J-dif] por datos[J] J = J – 1 fin mientras i = i +1 fin mientras dif = dif * factor fin mientras 1 54 43 44 73 4 0.5 1 ultInd dif factor 0 1 2 3 4 1 0 J i Función: ShellSort Recibe: datos[ ], ultInd Regresa: nada factor = 1 / 2 dif = (ultInd + 1) * factor mientras dif > 0 i = dif mientras i <= ultInd J= i mientras J >= dif AND datos[J - dif] > datos[J] intercambiar datos[J-dif] por datos[J] J = J – 1 fin mientras i = i +1 fin mientras dif = dif * factor fin mientras 1 54 43 44 73 4 0.5 1 ultInd dif factor 0 1 2 3 4 1 0 J i Función: ShellSort Recibe: datos[ ], ultInd Regresa: nada factor = 1 / 2 dif = (ultInd + 1) * factor mientras dif > 0 i = dif mientras i <= ultInd J= i mientras J >= dif AND datos[J - dif] > datos[J] intercambiar datos[J-dif] por datos[J] J = J – 1 fin mientras i = i +1 fin mientras dif = dif * factor fin mientras 1 54 43 44 73 4 0.5 1 ultInd dif factor 0 1 2 3 4 2 0 J i Función: ShellSort Recibe: datos[ ], ultInd Regresa: nada factor = 1 / 2 dif = (ultInd + 1) * factor mientras dif > 0 i = dif mientras i <= ultInd J= i mientras J >= dif AND datos[J - dif] > datos[J] intercambiar datos[J-dif] por datos[J] J = J – 1 fin mientras i = i +1 fin mientras dif = dif * factor fin mientras 1 54 43 44 73 4 0.5 1 ultInd dif factor 0 1 2 3 4 2 0 J i Función: ShellSort Recibe: datos[ ], ultInd Regresa: nada factor = 1 / 2 dif = (ultInd + 1) * factor mientras dif > 0 i = dif mientras i <= ultInd J= i mientras J >= dif AND datos[J - dif] > datos[J] intercambiar datos[J-dif] por datos[J] J = J – 1 fin mientras i = i +1 fin mientras dif = dif * factor fin mientras 1 54 43 44 73 4 0.5 1 ultInd dif factor 0 1 2 3 4 2 2 J i Función: ShellSort Recibe: datos[ ], ultInd Regresa: nada factor = 1 / 2 dif = (ultInd + 1) * factor mientras dif > 0 i = dif mientras i <= ultInd J= i mientras J >= dif AND datos[J - dif] > datos[J] intercambiar datos[J-dif] por datos[J] J = J – 1 fin mientras i = i +1 fin mientras dif = dif * factor fin mientras 1 54 43 44 73 4 0.5 1 ultInd dif factor 0 1 2 3 4 2 2 J i Función: ShellSort Recibe: datos[ ], ultInd Regresa: nada factor = 1 / 2 dif = (ultInd + 1) * factor mientras dif > 0 i = dif mientras i <= ultInd J= i mientras J >= dif AND datos[J - dif] > datos[J] intercambiar datos[J-dif]por datos[J] J = J – 1 fin mientras i = i +1 fin mientras dif = dif * factor fin mientras 1 44 43 54 73 4 0.5 1 ultInd dif factor 0 1 2 3 4 2 2 J i Función: ShellSort Recibe: datos[ ], ultInd Regresa: nada factor = 1 / 2 dif = (ultInd + 1) * factor mientras dif > 0 i = dif mientras i <= ultInd J= i mientras J >= dif AND datos[J - dif] > datos[J] intercambiar datos[J-dif] por datos[J] J = J – 1 fin mientras i = i +1 fin mientras dif = dif * factor fin mientras 1 44 43 54 73 4 0.5 1 ultInd dif factor 0 1 2 3 4 2 1 J i Función: ShellSort Recibe: datos[ ], ultInd Regresa: nada factor = 1 / 2 dif = (ultInd + 1) * factor mientras dif > 0 i = dif mientras i <= ultInd J= i mientras J >= dif AND datos[J - dif] > datos[J] intercambiar datos[J-dif] por datos[J] J = J – 1 fin mientras i = i +1 fin mientras dif = dif * factor fin mientras 1 44 43 54 73 4 0.5 1 ultInd dif factor 0 1 2 3 4 2 1 J i Función: ShellSort Recibe: datos[ ], ultInd Regresa: nada factor = 1 / 2 dif = (ultInd + 1) * factor mientras dif > 0 i = dif mientras i <= ultInd J= i mientras J >= dif AND datos[J - dif] > datos[J] intercambiar datos[J-dif] por datos[J] J = J – 1 fin mientras i = i +1 fin mientras dif = dif * factor fin mientras 1 44 43 54 73 4 0.5 1 ultInd dif factor 0 1 2 3 4 3 1 J i Función: ShellSort Recibe: datos[ ], ultInd Regresa: nada factor = 1 / 2 dif = (ultInd + 1) * factor mientras dif > 0 i = dif mientras i <= ultInd J= i mientras J >= dif AND datos[J - dif] > datos[J] intercambiar datos[J-dif] por datos[J] J = J – 1 fin mientras i = i +1 fin mientras dif = dif * factor fin mientras 1 44 43 54 73 4 0.5 1 ultInd dif factor 0 1 2 3 4 3 1 J i Función: ShellSort Recibe: datos[ ], ultInd Regresa: nada factor = 1 / 2 dif = (ultInd + 1) * factor mientras dif > 0 i = dif mientras i <= ultInd J= i mientras J >= dif AND datos[J - dif] > datos[J] intercambiar datos[J-dif] por datos[J] J = J – 1 fin mientras i = i +1 fin mientras dif = dif * factor fin mientras 1 44 43 54 73 4 0.5 1 ultInd dif factor 0 1 2 3 4 3 3 J i Función: ShellSort Recibe: datos[ ], ultInd Regresa: nada factor = 1 / 2 dif = (ultInd + 1) * factor mientras dif > 0 i = dif mientras i <= ultInd J= i mientras J >= dif AND datos[J - dif] > datos[J] intercambiar datos[J-dif] por datos[J] J = J – 1 fin mientras i = i +1 fin mientras dif = dif * factor fin mientras 1 44 43 54 73 4 0.5 1 ultInd dif factor 0 1 2 3 4 3 3 J i Función: ShellSort Recibe: datos[ ], ultInd Regresa: nada factor = 1 / 2 dif = (ultInd + 1) * factor mientras dif > 0 i = dif mientras i <= ultInd J= i mientras J >= dif AND datos[J - dif] > datos[J] intercambiar datos[J-dif] por datos[J] J = J – 1 fin mientras i = i +1 fin mientras dif = dif * factor fin mientras 1 44 54 43 73 4 0.5 1 ultInd dif factor 0 1 2 3 4 3 3 J i Función: ShellSort Recibe: datos[ ], ultInd Regresa: nada factor = 1 / 2 dif = (ultInd + 1) * factor mientras dif > 0 i = dif mientras i <= ultInd J= i mientras J >= dif AND datos[J - dif] > datos[J] intercambiar datos[J-dif] por datos[J] J = J – 1 fin mientras i = i +1 fin mientras dif = dif * factor fin mientras 1 44 54 43 73 4 0.5 1 ultInd dif factor 0 1 2 3 4 3 2 J i Función: ShellSort Recibe: datos[ ], ultInd Regresa: nada factor = 1 / 2 dif = (ultInd + 1) * factor mientras dif > 0 i = dif mientras i <= ultInd J= i mientras J >= dif AND datos[J - dif] > datos[J] intercambiar datos[J-dif] por datos[J] J = J – 1 fin mientras i = i +1 fin mientras dif = dif * factor fin mientras 1 44 54 43 73 4 0.5 1 ultInd dif factor 0 1 2 3 4 3 2 J i Función: ShellSort Recibe: datos[ ], ultInd Regresa: nada factor = 1 / 2 dif = (ultInd + 1) * factor mientras dif > 0 i = dif mientras i <= ultInd J= i mientras J >= dif AND datos[J - dif] > datos[J] intercambiar datos[J-dif] por datos[J] J = J – 1 fin mientras i = i +1 fin mientras dif = dif * factor fin mientras 1 43 54 44 73 4 0.5 1 ultInd dif factor 0 1 2 3 4 3 2 J i Función: ShellSort Recibe: datos[ ], ultInd Regresa: nada factor = 1 / 2 dif = (ultInd + 1) * factor mientras dif > 0 i = dif mientras i <= ultInd J= i mientras J >= dif AND datos[J - dif] > datos[J] intercambiar datos[J-dif] por datos[J] J = J – 1 fin mientras i = i +1 fin mientras dif = dif * factor fin mientras 1 43 54 44 73 4 0.5 1 ultInd dif factor 0 1 2 3 4 3 1 J i Función: ShellSort Recibe: datos[ ], ultInd Regresa: nada factor = 1 / 2 dif = (ultInd + 1) * factor mientras dif > 0 i = dif mientras i <= ultInd J= i mientras J >= dif AND datos[J - dif] > datos[J] intercambiar datos[J-dif] por datos[J] J = J – 1 fin mientras i = i +1 fin mientras dif = dif * factor fin mientras 1 43 54 44 73 4 0.5 1 ultInd dif factor 0 1 2 3 4 3 1 J i Función: ShellSort Recibe: datos[ ], ultInd Regresa: nada factor = 1 / 2 dif = (ultInd + 1) * factor mientras dif > 0 i = dif mientras i <= ultInd J= i mientras J >= dif AND datos[J - dif] > datos[J] intercambiar datos[J-dif] por datos[J] J = J – 1 fin mientras i = i +1 fin mientras dif = dif * factor fin mientras 1 43 54 44 73 4 0.5 1 ultInd dif factor 0 1 2 3 4 4 1 J i Función: ShellSort Recibe: datos[ ], ultInd Regresa: nada factor = 1 / 2 dif = (ultInd + 1) * factor mientras dif > 0 i = dif mientras i <= ultInd J= i mientras J >= dif AND datos[J - dif] > datos[J] intercambiar datos[J-dif] por datos[J] J = J – 1 fin mientras i = i +1 fin mientras dif = dif * factor fin mientras 1 43 54 44 73 4 0.5 1 ultInd dif factor 0 1 2 3 4 4 1 J i Función: ShellSort Recibe: datos[ ], ultInd Regresa: nada factor = 1 / 2 dif = (ultInd + 1) * factor mientras dif > 0 i = dif mientras i <= ultInd J= i mientras J >= dif AND datos[J - dif] > datos[J] intercambiar datos[J-dif] por datos[J] J = J – 1 fin mientras i = i +1 fin mientras dif = dif * factor fin mientras 1 43 54 44 73 4 0.5 1 ultInd dif factor 0 1 2 3 4 4 4 J i Función: ShellSort Recibe: datos[ ], ultInd Regresa: nada factor = 1 / 2 dif = (ultInd + 1) * factor mientras dif > 0 i = dif mientras i <= ultInd J= i mientras J >= dif AND datos[J - dif] > datos[J] intercambiar datos[J-dif] por datos[J] J = J – 1 fin mientras i = i +1 fin mientras dif = dif * factor fin mientras 1 43 54 44 73 4 0.5 1 ultInd dif factor 0 1 2 3 4 4 4 J i Función: ShellSort Recibe: datos[ ], ultInd Regresa: nada factor = 1 / 2 dif = (ultInd + 1) * factor mientras dif > 0 i = dif mientras i <= ultInd J= i mientras J >= dif AND datos[J - dif] > datos[J] intercambiar datos[J-dif] por datos[J] J = J – 1 fin mientras i = i +1 fin mientras dif = dif * factor fin mientras 1 43 54 44 73 4 0.5 1 ultInd dif factor 0 1 2 3 4 5 4 J i Función: ShellSort Recibe: datos[ ], ultInd Regresa: nada factor = 1 / 2 dif = (ultInd + 1) * factor mientras dif > 0 i = dif mientras i <= ultInd J= i mientras J >= dif AND datos[J - dif] > datos[J] intercambiar datos[J-dif] por datos[J] J = J – 1 fin mientras i = i +1 fin mientras dif = dif * factor fin mientras 1 43 54 44 73 4 0.5 1 ultInd dif factor 0 1 2 3 4 5 4 J i Función: ShellSort Recibe: datos[ ], ultInd Regresa: nada factor = 1 / 2 dif = (ultInd + 1) * factor mientras dif > 0 i = dif mientras i <= ultInd J= i mientras J >= dif AND datos[J - dif] > datos[J] intercambiar datos[J-dif] por datos[J] J = J – 1 fin mientras i = i +1 fin mientras dif = dif * factor fin mientras 1 43 54 44 73 4 0.5 0 ultInd dif factor 0 1 2 3 4 5 4 J i Función: ShellSort Recibe: datos[ ], ultInd Regresa: nada factor = 1 / 2 dif = (ultInd + 1) * factor mientras dif > 0 i = difmientras i <= ultInd J= i mientras J >= dif AND datos[J - dif] > datos[J] intercambiar datos[J-dif] por datos[J] J = J – 1 fin mientras i = i +1 fin mientras dif = dif * factor fin mientras 1 43 54 44 73 4 0.5 0 ultInd dif factor 0 1 2 3 4 5 4 J i Función: ShellSort Recibe: datos[ ], ultInd Regresa: nada factor = 1 / 2 dif = (ultInd + 1) * factor mientras dif > 0 i = dif mientras i <= ultInd J= i mientras J >= dif AND datos[J - dif] > datos[J] intercambiar datos[J-dif] por datos[J] J = J – 1 fin mientras i = i +1 fin mientras dif = dif * factor fin mientras 1 43 54 44 73 4 0.5 0 ultInd dif factor 0 1 2 3 4 5 4 J i Función: ShellSort Recibe: datos[ ], ultInd Regresa: nada factor = 1 / 2 dif = (ultInd + 1) * factor mientras dif > 0 i = dif mientras i <= ultInd J= i mientras J >= dif AND datos[J - dif] > datos[J] intercambiar datos[J-dif] por datos[J] J = J – 1 fin mientras i = i +1 fin mientras dif = dif * factor fin mientras
Compartir