METODO DE INSERCION Este método 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 jugadores de cartas se le conoce también por el nombre nombregeneralmente de método depor . la los baraja baraja. Ejemplo: Ejemplo: Tenemos esta lista desordenada 5
14 14
24 24
39 39
43 43
65 65
84 84
45 45
El método se basa en comparaciones y desplazamientos sucesivos. El algoritmo de clasificación de un vector X para N elementos se realiza con un recorrido de todo el vector y la inserción 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 acción repetitiva insertar se se realiza más fácilmente con la inclusión de un valor centinela o bandera (SW).
Inicio // ordenación desde I =2 hasta N hacer AUXI= x(I) fin
Algoritmo por inserción mejorado
El algoritmo de inserción directa se mejora fácilmente. Para ello se recurre a un método de búsqueda binaria, en lugar de una búsqueda secuencial, para
encontrar mas rápidamente el lugar de inserción. Este método se conoce como inserción binaria.
Dim DATO(0 To 19) As Double, N As Double Private Sub Command1_Click() Dim A As Double, J As Double N =0 InputBox("digitee numero elementos","e InputBox("digit elementos","entrada") ntrada") A= Do J=InputBox("digite J=InputBo x("digite el numero",+str(A numero",+str(A),"entrada") ),"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
Thank you for interesting in our services. We are a non-profit group that run this website to share documents. We need your help to maintenance this website.