0 valutazioniIl 0% ha trovato utile questo documento (0 voti)
91 visualizzazioni3 pagine
El método de inserción ordena un vector insertando elementos de forma secuencial en la parte ya ordenada del vector. Primero se compara cada elemento con los anteriores y se inserta en la posición correcta, repitiendo este proceso hasta ordenar todo el vector.
El método de inserción ordena un vector insertando elementos de forma secuencial en la parte ya ordenada del vector. Primero se compara cada elemento con los anteriores y se inserta en la posición correcta, repitiendo este proceso hasta ordenar todo el vector.
El método de inserción ordena un vector insertando elementos de forma secuencial en la parte ya ordenada del vector. Primero se compara cada elemento con los anteriores y se inserta en la posición correcta, repitiendo este proceso hasta ordenar todo el vector.
Este mtodo consiste en insertar un elemento en el vector en una parte ya
ordenada de este vector y comenzar de nuevo con los elementos restantes. Por ser utilizado generalmente por los jugadores de cartas se le conoce tambin por el nombre de mtodo de la baraja. Ejemplo: Tenemos esta lista desordenada 5 14 24 39 43 65 84 45 El mtodo se basa en comparaciones y desplazamientos sucesivos. El algoritmo de clasificacin de un vector X para N elementos se realiza con un recorrido de todo el vector y la insercin del elemento correspondiente en el lugar adecuado. El recorrido se realiza desde el segundo elemento al n-esimo.
desde I = 2 hasta N hacer insertar X[I] en el lugar adecuado entre X[I] . . X[I - 1] fin desde
Esta accin repetitiva insertar se realiza ms fcilmente con la inclusin de un valor centinela o bandera (SW).
Inicio // ordenacin desde I =2 hasta N hacer AUXI= x(I) fin
Algoritmo por insercin mejorado
El algoritmo de insercin directa se mejora fcilmente. Para ello se recurre a un mtodo de bsqueda binaria, en lugar de una bsqueda secuencial, para encontrar mas rpidamente el lugar de insercin. Este mtodo se conoce como insercin binaria.
Dim DATO(0 To 19) As Double, N As Double Private Sub Command1_Click() Dim A As Double, J As Double N = InputBox("digite numero elementos","entrada") A = 0 Do J=InputBox("digite el numero",+str(A),"entrada") DATO(A) = J MSFlexGrid1.TextMatrix(0, A) = DATO(A) A = A + 1 Loop Until A = N End Sub
Private Sub Command2_Click() Dim A As Double, C As Double Dim AUX As Double, R As Double Dim H As Double H = 0 Do C = 1 A = 0 Do If DATO(C) > DATO(A) Then C = C + 1 A = A + 1 Else AUX = DATO(C) R = C Do DATO(R) = DATO(A) MSFlexGrid1.TextMatrix(0,R)=DATO(R) R = R - 1 Loop Until R = A DATO(A) = AUX MSFlexGrid1.TextMatrix(0,A)=DATO(A) C = C + 1 A = A + 1 End If Loop Until C = N H = H + 1 Loop Until H = N End Sub
Private Sub Command3_Click() Dim A As Double A = 0 Do MSFlexGrid1.TextMatrix(0, A) = "" A = A + 1 Loop Until A = N End Sub