Código Python – Ordenamiento Heapsort


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 Heapsort:

def heapsort(lista,tam):
    for k in range(tam-1,-1,-1):
        for i in range(0,k):
            item=lista[i]
            j=(i+1)/2
            while j>=0 and lista[j]<item:
                lista[i]=lista[j]
                i=j
                j=j/2
            lista[i]=item
        temp=lista[0];
	lista[0]=lista[k];
	lista[k]=temp;

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()
heapsort(A,len(A))
imprimeLista(A,len(A))
Anuncios

Código PHP – Ordenamiento Heapsort


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 Heapsort:

<?php

    function heapsort($A,$n)
    {

        for($k=$n-1;$k>=0;$k--)
        {
                for($i=1;$i<=$k;$i++)
                {
                        $item=$A[$i];
                        $j=$i/2;
                        while($j>0 && $A[$j]<$item)
                        {
                                $A[$i]=$A[$j];
                                $i=$j;
                                $j=$j/2;
                        }
                        $A[$i]=$item;
                }
                $temp=$A[0];
                $A[0]=$A[$k];
                $A[$k]=$temp;
        }

      return $A;
    }

    function main()
    {

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

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

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

    }

    main();
?>

Código C++ – Ordenamiento Heap Sort


//Heap Sort
//Codificado por sAfOrAs
#include <iostream>
#define max 100
using namespace std;

int main()
{
	int A[max],j,item,temp,i,k,n;
	cout<<"Ingresa la cantidad de elementos del arreglo: ";
	cin>>n;
	for(i=1;i<=n;i++)
	cin >> A[i];

	for(k=n;k>0;k--)
	{
		for(i=1;i<=k;i++)
		{
			item=A[i];
			j=i/2;
			while(j>0 && A[j]<item)
			{
				A[i]=A[j];
				i=j;
				j=j/2;
			}
			A[i]=item;
		}
		temp=A[1];
		A[1]=A[k];
		A[k]=temp;
	}
	cout<<"El orden es:"<<endl;
	for(i=1;i<=n;i++)
	cout<<A[i] << endl;
	return 0;
}
#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;
	}
}