06.05.2013 Views

CONTENIDO DE LA LECCIÓN 18

CONTENIDO DE LA LECCIÓN 18

CONTENIDO DE LA LECCIÓN 18

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

MIGUEL Á. TOLEDO MARTÍNEZ<br />

¿Qué hay de los valores de regreso? ¿Necesita regresar la función un valor sencillo o una serie de<br />

valores? La función no necesita regresar ningún valor sencillo, deberá regresar el arreglo ordenado. Por lo<br />

tanto, la clase de valor regresado será void y el arreglo será un parámetro de referencia, ¿correcto?<br />

Recuerde que cuando se pasan los arreglos a las funciones C++, siempre son tratados como parámetros de<br />

referencia porque el nombre del arreglo representa una dirección en memoria. Por lo tanto, aquí está la<br />

descripción de la interfaz de la función clasifPorInser():<br />

Función clasifPorInser(): Clasifica un arreglo de caracteres en orden ascendente.<br />

Acepta: Un arreglo de caracteres sin clasificar.<br />

Regresa: Un arreglo de caracteres clasificados.<br />

De la descripción anterior, la interfaz de la función se codifica fácilmente como:<br />

void clasifPorInser(char arreglo[MAX])<br />

La interfaz dice que clasifPorInser() recibirá un arreglo de caracteres de tamaño MAX. El tipo regresado es<br />

void, porque no se regresa ningún valor sencillo. Sin embargo, debido a que el arreglo completo se pasa a la<br />

función, cualquier operación de clasificación sobre el arreglo dentro de la función se reflejará en el<br />

programa llamador.<br />

P<strong>LA</strong>NEACIÓN <strong>DE</strong> <strong>LA</strong> SOLUCIÓN<br />

Antes de establecer el algoritmo, vamos a ver cómo trabaja la clasificación por inserción. Vea la figura<br />

<strong>18</strong>.3. Suponga que vamos a clasificar un arreglo de 5 caracteres en orden ascendente. Antes de entrar en<br />

detalle, vea la figura de arriba abajo y de izquierda a derecha. El arreglo sin ordenar se muestra en la parte<br />

superior de la figura <strong>18</strong>.3 y el arreglo ordenado se muestra en la parte inferior de la figura <strong>18</strong>.3. Observe<br />

que el sombreado se emplea en la figura para mostrar el proceso de clasificación de arriba a abajo.<br />

Conforme procedemos desde el arreglo sin clasificar en la parte superior, el sombreado se incrementa,<br />

mostrando la porción del arreglo que está clasificado, hasta que el arreglo completo está sombreado en la<br />

parte inferior de la figura <strong>18</strong>.3.<br />

La secuencia descendente muestra que se harán cuatro pasos a lo largo del arreglo para obtener al arreglo<br />

clasificado mostrado en la parte inferior de la figura. Con cada paso, un elemento se coloca dentro de su<br />

posición clasificada relativa a los elementos que se encuentran antes en el arreglo. El primer paso empieza<br />

con el primer elemento ‘E’, clasificado como se indica por medio del sombreado. Se considera que el<br />

carácter individual ‘E’ se clasifica por sí mismo, porque no tiene ningún elemento antes que él. De esta<br />

manera, la tarea en este primer paso es clasificar el segundo elemento, ‘D’, relativo al carácter ‘E’ que lo<br />

precede.<br />

El segundo paso empieza con los caracteres clasificados ‘D’ y ‘E’, como se indica por medio del<br />

sombreado. La tarea en este paso es clasificar el tercer carácter, ‘C’, en relación con estos dos caracteres.<br />

En el tercer paso se empieza con los caracteres clasificados ‘C’, ‘D’ y ‘E’, y la tarea es clasificar el carácter<br />

‘B’ en relación con estos caracteres. Recuerde, en cada paso, la tarea es clasificar el primer carácter de la<br />

parte no clasificada del arreglo en relación con los caracteres que le preceden. El proceso continúa hasta<br />

que se clasifican todos los caracteres, como se muestra en la parte inferior de la figura <strong>18</strong>.3. En cada paso<br />

se repite prácticamente lo que se hizo en el paso anterior. Como resultado, es posible identificar un proceso<br />

de repeticiones paso a paso, de arriba hacia debajo de la figura <strong>18</strong>.3. Esta repetición dará origen a una<br />

estructura de ciclo en nuestro algoritmo.<br />

Ahora, la pregunta es: ¿qué sucede durante cada paso para clasificar finalmente al arreglo completo?<br />

Bueno, durante cada paso, el primer elemento en la parte no clasificada (sin sombrear) del arreglo se<br />

examina comparándolo a la secuencia clasificada de los elementos que le preceden. Si este elemento es<br />

menor que el anterior, estos dos elementos se intercambian y de nuevo el elemento anterior se compara con<br />

su predecesor, si es menor se intercambian y así sucesivamente.<br />

ARREGLOS, APUNTADORES Y ESTRUCTURAS – <strong>LECCIÓN</strong> <strong>18</strong> <strong>18</strong>-48

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!