domingo, 24 de mayo de 2015

ALGORTIMO 4
BUSQUEDA CRCW

#BUSQUEDA CRCW
#OSCAR SALGADO ALAMILLA

import os
import math
from threading import Thread

#DEFINICION DE FUNCIONES
def hilo1(Win,i):
    Win[i]=0
   
def hilo2(L,Win,i,j):
    if(L[i]>L[j]):
        Win[i]=1
    else:
        Win[j]=1
   
def hilo3(Win,i,ind):
    if(Win[i]==0):
        ind[0]=i


print"========= B U S Q U E D A   C R C W ==========="


L=[]
x=int(raw_input("INGRESE EL TAMAÑO DEL VECTOR A LLENAR: "))
i=1
while (i<=x):
    n1=int(raw_input("INGRESE DIGITO:"))
    L.append(n1)
    print L
    i+=1
Win=[1,1,1,1,1,1,1,1,1,1,1,1,1]
ind=[1000000000000000000000000]
i=0
n=len(L)

while(i<n):
    if(i>=0):
        t = Thread(target=hilo1, args = (Win,i))
        t.start()
        t.join()
    i=i+1
i=0
j=i+1

#print "PROCESO 1"
print "VECTOR ORIGINAL: >>> ", L
print Win

while(j<n):
    if(i<j):
        if(i>=0):
            t = Thread(target=hilo2, args = (L,Win,i,j))
            t.start()
            t.join()
    i=i+1
    j=j+1
i=0
#print "\nPROCESO 2"
print Win



while(i<n):
    if(i>=0):
        t = Thread(target=hilo3, args = (Win,i,ind))
        t.start()
        t.join()
        i=i+1

#print "\nPROCESO 3"
print "ENCONTRANDO EL MINIMO ELEMENTO IDENTIFICADO CON EL VALOR 0\n", Win

       
print "\nEL MINIMO VALOR ES:  ", L[ind[0]]

os.system('pause')

No hay comentarios:

Publicar un comentario