Advertisement
fahadkalil

sort_v2_resolucao

Oct 31st, 2019
304
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.44 KB | None | 0 0
  1. # Bubble Sort
  2.  
  3. def bubblesort(lista):
  4.     ordenado = False
  5.     while not ordenado:
  6.         ordenado = True
  7.         for i in range(len(lista)-1):
  8.             if lista[i] > lista[i+1]:
  9.                 ordenado = False
  10.                 # swap (troca)
  11.                 lista[i], lista[i+1] = lista[i+1], lista[i]
  12.  
  13.     return lista
  14.  
  15. def insertionsort(lista):
  16.     for i in range(1, len(lista)):
  17.         for j in range(0,i):
  18.             if lista[i] < lista[j]:
  19.                 lista[i], lista[j] = lista[j], lista[i]
  20.  
  21.     return lista
  22.  
  23. # metodo auxiliar para SelectionSort
  24. # retorna o indice do menor valor dentro do intervalo
  25. def menor(lista, inicio):
  26.     menor = inicio
  27.     for i in range(inicio, len(lista)):
  28.         if lista[i] < lista[menor]:
  29.             menor = i
  30.  
  31.     return menor
  32.  
  33. def selectionsort(lista):    
  34.     for i in range(0, len(lista)):
  35.         indice_menor = lista.index(min(lista[i:]))
  36.         lista[indice_menor], lista[i] = lista[i], lista[indice_menor]
  37.  
  38.     return lista        
  39.        
  40. ## TESTES ##
  41. lista = [23,12,5,88]
  42. print('Não ordenado: {}'.format(lista))
  43. print('Ordenado (BubbleSort): {}'.format(bubblesort(lista)))
  44. print()
  45.  
  46. lista = [23,12,5,88]
  47. print('Não ordenado: {}'.format(lista))
  48. print('Ordenado (InsertionSort): {}'.format(insertionsort(lista)))
  49. print()
  50.  
  51. lista = [23,12,5,88]
  52. print('Não ordenado: {}'.format(lista))
  53. print('Ordenado (SelecionSort): {}'.format(selectionsort(lista)))
  54. print()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement