'''
Universidade Federal do Para
Instituto de Ciencias Eaxatas e Naturais
Faculdade de Computacao - Bacharelado em Sistemas de Informacao
Disciplina: Estruturas de Dados II
Prof.: Lidio Mauro Lima de Campos
Estudante: Pedro Paulo Lisboa de Sousa Matricula: 201711140038
'''
from random import *
import time
def result(maximo,minimo):
return "Maximo = %s, Minimo = %s\n" % (maximo, minimo)
def maxmin2(v):
start = time.time()
maximo = v[0]
minimo = v[0]
for i in range(1,len(v)):
if v[i] > maximo:
maximo = v[i]
elif v[i] < minimo:
minimo = v[i]
return "MaxMin2\n" + result(maximo,minimo) + ("Tempo de execucao: %s segundos\n" % (time.time() - start))
def maxmin1(v):
start = time.time()
maximo = v[0]
minimo = v[0]
for i in range(1,len(v)):
if v[i] > maximo:
maximo = v[i]
if v[i] < minimo:
minimo = v[i]
return "MaxMin1\n" + result(maximo,minimo) + ("Tempo de execucao: %s segundos\n" % (time.time() - start))
def maxmin3(v):
start = time.time()
n = len(v)
if (n % 2) > 0:
v.append(v[n-1])
fimDoAnel = n
else:
fimDoAnel = n - 1
if v[0] > v[1]:
maximo = v[0]
minimo = v[1]
else:
maximo = v[1]
minimo = v[0]
i = 2
while i < fimDoAnel:
if v[i] > v[i+1]:
if v[i] > maximo:
maximo = v[i]
if v[i+1] < minimo:
minimo = v[i+1]
else:
if v[i] < minimo:
minimo = v[i]
if v[i+1] > maximo:
maximo = v[i+1]
i += 2
return "MaxMin3\n" + result(maximo,minimo) + ("Tempo de execucao: %s segundos\n" % (time.time() - start))
vetor = []
tamanho = 500000
for x in range(0,tamanho):
num = randint(0,99999)
vetor.append(num)
medio = vetor
melhor = sorted(medio)
pior = sorted(medio, reverse=True)
#Melhor caso
print("Melhor caso")
print(maxmin1(melhor))
print(maxmin2(melhor))
print(maxmin3(melhor))
#Medio caso
print("Caso Médio")
print(maxmin1(medio))
print(maxmin2(medio))
print(maxmin3(medio))
#Pior caso
print("Pior caso")
print(maxmin1(pior))
print(maxmin2(pior))
print(maxmin3(pior))