Metodo de Insercion

September 2, 2022 | Author: Anonymous | Category: N/A
Share Embed Donate


Short Description

Download Metodo de Insercion...

Description

 

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

Private Sub Command4_Click() End End Sub 

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF