InicioApuntes Y MonografiasOrdenamiento búrbuja, selección e inserción en Fortran

Ordenamiento búrbuja, selección e inserción en Fortran

Hola amigos taringeros este es mi décimo post, así es que decidí hacerlo de programación en Fortran, el siguiente código lo que hace es generar una lista de 10 números ingresados por el usuario para que de esta forma por medio de los métodos de burbuja, selección e inserción en Fortran los pueda ordenar, imprimiendo los 5 primeros números ingresados por el usuario y los 5 últimos números ya ordenados por el método deseado.


Ordenamiento búrbuja, selección e inserción en Fortran


cMétodo de Burbuja
subroutine burbuja(v,n)
integer v(n)
do i=1,n-1 ! Genera todas las combinaciones de
do j=i+1,n ! n elementos tomados de 2 en 2
if (v(i).GT.v(j)) then ! Si el de la izquierda es mayor,
m=v(i)
v(i)=v(j)
v(j)=m ! los intercambia
end if
end do
end do
end

cMétodo de Selección
subroutine seleccion(v,n)
integer v(n)
do i=1,n-1 ! Posicion en la lista
min=i ! Minimo en la posicion ‘min’
do j=i+1,n ! Busca el minimo situado a la derecha de i
if (v(min).GT.v(j)) then
min=j
end if
end do
m=v(i)
v(i)=v(min)
v(min)=m ! Intercambia valores
end do
end

cMétodo de Inserción
subroutine insercion(v,n)
integer v(n)
do i=2,n ! Elemento que se quiere insertar adecuadamente
m=v(i) ! Lo recuerda
j=i-1
do while (v(j).GT.m .and. j.GT.0)
v(j+1)=v(j) ! Efectua los desplazamientos
j=j-1
if (j.EQ.0) then
endif
end do
v(j+1)=m ! y lo pone
end do
end

cPrograma
program Ordenamiento
real x
integer a(10)
write(*,*) "+++++++++++++++++++++++++++++++++++++"
write(*,*) "Seleccione una de las siguientes opciones:"
write(*,*) "1. Ordenamiento de Burbujan",
+ " 2. Ordenamiento de Selección",
+ "3. Ordenamiento por Inserción"
write(*,*) "+++++++++++++++++++++++++++++++++++++"
read(*,*)x
if (x.EQ.1) then
write(*,*) "....................................."
write(*,*) "1. Ordenamiento de Burbuja"
write(*,*) "....................................."
write(*,*) "Ingrese los 10 números a ordenar:"
do k=1,10
read(*,*) a(k)
end do
write(*,*) "Los primeros 5 números ingresados son:"
write(*,*)(a(o),'n',o=1,5)
call burbuja(a,k)
write(*,*) "Los últimos 5 números ya ordenados son:"
write(*,*)(a(k),'n',k=6,10)
elseif (x.EQ.2) then
write(*,*) "....................................."
write(*,*) "2. Ordenamiento de Selección"
write(*,*) "....................................."
write(*,*) "Ingrese los 10 números a ordenar:"
do k=1,10
read(*,*) a(k)
end do
write(*,*) "Los primeros 5 números ingresados son:"
write(*,*)(a(p),'n',p=1,5)
call seleccion(a,k)
write(*,*) "Los últimos 5 números ya ordenados son:"
write(*,*)(a(k),'n',k=6,10)
elseif (x.EQ.3) then
write(*,*) "....................................."
write(*,*) "3. Ordenamiento de Inserción"
write(*,*) "....................................."
write(*,*) "Ingrese los 10 números a ordenar:"
do k=1,10
read(*,*) a(k)
end do
write(*,*) "Los primeros 5 números ingresados son:"
write(*,*)(a(q),'n',q=1,5)
call insercion(a,k)
write(*,*) "Los últimos 5 números ya ordenados son:"
write(*,*)(a(k),'n',k=6,10)
endif
stop
end



seleccion

Gracias y Saludos!!!!!!
Datos archivados del Taringa! original
0puntos
1,572visitas
0comentarios
Actividad nueva en Posteamelo
0puntos
5visitas
0comentarios
Dar puntos:

Dejá tu comentario

0/2000

Autor del Post

m
mikidash🇦🇷
Usuario
Puntos0
Posts15
Ver perfil →
PosteameloArchivo Histórico de Taringa! (2004-2017). Preservando la inteligencia colectiva de la internet hispanohablante.

CONTACTO

18 de Septiembre 455, Casilla 52

Chillán, Región de Ñuble, Chile

Solo correo postal

© 2026 Posteamelo.com. No afiliado con Taringa! ni sus sucesores.

Contenido preservado con fines históricos y culturales.