domingo, 24 de mayo de 2015

ALGORITMO 5
ORDENAMIENTO CRCW

#ORDENAMIENTO CRCW
#OSCAR SALGADO ALAMILLA

from threading import Thread
import os
import math

#DEFINICION DE FUNCIONES
def hilo1(win,i):
    win.insert(i,0)


def hilo2(win,i,j):
    if(L[i]>L[j]):
        win[i]=win[i]+1
    else:
        win[j]=win[j]+1


def hilo3(i,win):
    L2.insert(win[i],L[i])
    L2.pop(win[i]+1)


#PRINCIPAL
L=[]
L2=[]
WIN=[]
indexMin=[]

print"====== O R D E N A M I E N T O  C R C W ======"



n=int(raw_input("INGRESE EL TAMAÑO DEL VECTOR: "))
i=0
while(i<n):
    print "INGRESE DIGITO ",i+1,":",
    x=int(raw_input())
    L.append(x)
    L2.append(0)
    i=i+1

n=len(L)
print "\nUSTED INGRESO LOS SIGUIENTES DIGITOS: ",L
i=1
while(i<=n):
    t=Thread(target=hilo1,args=(WIN,i))
    t.start()
    t.join()
    i=i+1
print "\nINICIALIZANDO VECTOR AUXILIAR: ",WIN
i=0

while(i<=n):
    j=i+1
    while(j<n and i<j):
        t=Thread(target=hilo2,args=(WIN,i,j))
        t.start()
        t.join()
        j=j+1 
    i=i+1

print "\nLLENANDO EL INDICE DE  WIN:  ",WIN
i=0
while(i<n):
    t=Thread(target=hilo3,args=(i,WIN))
    t.start()
    t.join()
    i=i+1
print "\nEL VECTOR ORDENADO ES: ",L2

os.system('pause')


No hay comentarios:

Publicar un comentario