Advertisement
GustavoRS20

Trabalho Quick sort python

Nov 20th, 2019
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.91 KB | None | 0 0
  1. import random
  2. import statistics
  3.  
  4. def quicksort(list,inicio = 0,fim = None):
  5.  
  6.   if fim is None:
  7.     fim = len(list) - 1
  8.  
  9.   if inicio < fim:
  10.     p = particao(list,inicio,fim)
  11.     quicksort(list,inicio,p-1)
  12.     quicksort(list,p+1,fim)
  13.  
  14.  
  15. def particao(list,inicio,fim):
  16.  
  17.   pivot = list[fim]
  18.   i = inicio
  19.  
  20.   for j in range(inicio,fim):
  21.     if list[j] < pivot:
  22.       list[j],list[i] = list[i],list[j]
  23.       i += 1
  24.   list[i],list[fim] = list[fim],list[i]
  25.  
  26.   return i
  27.  
  28. def mediana(list):
  29.   qtd = 0
  30.  
  31.   for i in range(len(list)):
  32.     qtd += 1
  33.  
  34.   for i in range(qtd):
  35.     if i == qtd/2:
  36.       mediana = 1 + i
  37.      
  38.   return mediana
  39.  
  40. list = random.sample(range(1,27000),25000)
  41. quicksort(list)
  42.  
  43. for item in range(len(list)):
  44.   print(f"{item} : {list[item]}")
  45.  
  46. median = mediana(list)
  47. media = statistics.median(list)
  48.  
  49. print(f"a mediana é : {list[median]}")
  50. print(f"A média é: {media :.2f}")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement