Código Python – Ordenamiento por Inserción Directa


El siguiente post pertenece al topic: Métodos de Ordenamiento codificados en Python.

El código realiza un Ordenamiento de datos numéricos haciendo uso del Método de Inserción Directa:

def insercionDirecta(lista,tam):
    for i in range(1,tam):
        v=lista[i]
        j=i-1
        while j >= 0 and lista[j] > v:
            lista[j+1] = lista[j]
            j=j-1
        lista[j+1]=v

def imprimeLista(lista,tam):
    for i in range(0,tam):
        print lista[i]

def leeLista():
    lista=[]
    cn=int(raw_input("Cantidad de numeros a ingresar: "))

    for i in range(0,cn):
        lista.append(int(raw_input("Ingrese numero %d : " % i)))
    return lista

A=leeLista()
insercionDirecta(A,len(A))
imprimeLista(A,len(A))
Anuncios

Código PHP – Ordenamiento por Inserción Directa


El siguiente post pertenece al topic: Métodos de Ordenamiento codificados en PHP.

El código realiza un Ordenamiento de datos numéricos haciendo uso del Método de Inserción Directa:

<?php

    function insercionDirecta($A,$n)
    {

        for ($i = 1; $i < $n; $i++)
        {
                 $v = $A[$i];
                 $j = $i - 1;
                 while ($j >= 0 && $A[$j] > $v)
                 {
                          $A[$j + 1] = $A[$j];
                          $j--;
                 }

                 $A[$j + 1] = $v;
        }

        return $A;
    }

    function main()
    {

        $VectorA=array(5,4,3,2,1);

        $VectorB=insercionDirecta($VectorA,sizeof($VectorA));

        for($i=0;$i<sizeof($VectorB);$i++)
            echo $VectorB[$i]."\n";

    }

    main();
?>

Código Bash – Ordenamiento por Inserción Directa


El siguiente código trata del método de ordenamiento por inserción directa en bash:

#!/bin/bash
function inserciondirecta {
	lista=$1
	tam=${#lista[@]}

        for i in $(seq 1 $[$tam-1]) ; do
                 v=${lista[$i]}
                 j=$[$i-1]
                 while [[ $j -ge 0 && ${lista[$j]} -gt $v ]] ; do
                          lista[$[$j+1]]=${lista[$j]}
                          j=$[$j-1]
                 done

                 lista[$[$j+1]]=$v
        done
}

lista=(5 4 3 2 1)

inserciondirecta $lista

for i in ${lista[@]};do	echo $i; done

Código C++ – Ordenamiento por Inserción Directa


//Inserción Directa
//Codificado por sAfOrAs
#include<iostream>
#include"leearreglo.h"
using namespace std;
#define largo 50
void insercionDirecta(int A[],int n)
{

      int i,j,v;

      for (i = 1; i < n; i++)
		{
			 v = A[i];
			 j = i - 1;
			 while (j >= 0 && A[j] > v)
			 {
				  A[j + 1] = A[j];
				  j--;
			 }
			
			 A[j + 1] = v;
	  }   
}
 
void main () 
{
    int A[largo],n;
	do{
	cout<<"Cantidad de numeros a ingresar: ";cin>>n;
		if(n<=0||n>largo)
			cout<<"Debe ingresar un valor  > a 0 y < a "<<largo<<endl;
	}while(n<=0||n>largo);

    leeCadena(n,A);
    insercionDirecta(A,n);
    muestraCadena(n,A);
  
}
#include<iostream>
using namespace std;
void leeCadena(int cant,int n[])
{
	int i;
	for(i=0;i<cant;i++)
	{
		cout<<"Ingresa numero "<<i+1<<": ";
		cin>>n[i];
	}
	
}

void muestraCadena(int cant,int n[])
{
	int i;
	for(i=0;i<cant;i++)
	{
		cout<<n[i]<<endl;
	}
}