domingo, 24 de janeiro de 2021

Python3 Buscas

 ''' Exercício 1: Lista ordenada
Escreva a função ordenada(lista), que recebe uma lista com números inteiros como parâmetro e devolve o booleano True se a lista estiver ordenada e False se a lista não estiver ordenada.
Exercício 2: Busca sequencial
Implemente a função busca(lista, elemento), que busca um determinado elemento em uma lista e devolve o índice correspondente à posição do elemento encontrado. Utilize o algoritmo de busca sequencial. Nos casos em que o elemento buscado não existir na lista, a função deve devolver o booleano False.
Exemplo:
busca(['a', 'e', 'i'], 'e')
# deve devolver => 1
busca([12, 13, 14], 15)
# deve devolver => False '''

def ordenada(lista):
    for i in range(len(lista)-1):
        #print(lista[i],lista[i+1])
        if lista[i] > lista[i+1]:
            return False
    return True
l1 = [1,2,3,4,5,6]; l2 = [1,2,5,4,3,2]
print(l1, ordenada(l1), '\n', l2, ordenada(l2))

def busca(lista, elemento):
    for i in range(len(lista)):
        if elemento == lista[i]:
            return i
    return False
#print(busca(['a', 'e', 'i'], 'e')) # deve devolver => 1
#print(busca([12, 13, 14], 15)) # deve devolver => False
    

#-----------------------------


def busca_sequencial(seq, x):
    for i in range(len(seq)):
        print(i,len(seq))
        if seq[i] == x:
            print('!',i)
            return True # o return para a execução do for e while!
    return False

numeros = [55,33,0,900,-432,10,77,123,-432,11]
print(busca_sequencial(numeros, -432))

#------------------

def selecao_direta(lista):
    fim = len(lista)
    for i in range(fim-1):
        pos_menor = i
        for j in range(i+1,fim):
            if lista[j] < lista[pos_menor]:
                pos_menor = j
        lista[i],lista[pos_menor] = lista[pos_menor],lista[i]
    return lista

numeros = [55,33,0,900,-432,10,77,2,11]
letras = ["c","d","a","t","r","q","w","b","e","f","b"]
print(selecao_direta(numeros))
print(selecao_direta(letras))

Nenhum comentário:

Postar um comentário