Sort em Python
Sort em Python
import time
vetor=[7,5,8,6,1,0,2,4,9,3]
original=[7,5,8,6,1,0,2,4,9,3]
def timing(f):
def wrap(*args, **kwargs):
time1 = time.time()
ret = f(*args, **kwargs)
time2 = time.time()
print('{:s} function took {:.5f} ms'.format(f.__name__, (time2-
time1)*10000.0))
return ret
return wrap
@timing
def sort2(vet):
i=0
j=0
for i in range(len(vet)):
for j in range(len(vet)):
if vet[i]<vet[j]:
t=vet[j]
vet[j]=vet[i]
vet[i]=t
return vet
@timing
def mergeSort(arr, l, r):
if l < r:
@timing
def selectionSort(array):
size=len(array)
for ind in range(size):
min_index = ind
for j in range(ind + 1, size):
if array[j] < array[min_index]:
min_index = j
(array[ind], array[min_index]) = (array[min_index], array[ind])
return array
@timing
def quick_sort(lista, inicio, fim):
if inicio > fim:
return
anterior = inicio
posterior = fim
pivo = lista[inicio]
lista[anterior] = pivo
@timing
def bubbleSort(arr):
n = len(arr)
swapped = False
for i in range(n-1):
for j in range(0, n-i-1):
if arr[j] > arr[j + 1]:
swapped = True
arr[j], arr[j + 1] = arr[j + 1], arr[j]
if not swapped:
return arr
return arr
@timing
def binarySearch(arr, l, r, x):
if r >= l:
mid = l + (r - l) // 2
if arr[mid] == x:
return mid
elif arr[mid] > x:
return binarySearch(arr, l, mid-1, x)
else:
return binarySearch(arr, mid + 1, r, x)
else:
return -1
def insert_item(array,valor):
i = binarySearch(array, 0, len(original)-1, valor)
if i>0:
array.insert(i,valor)
else:
for i in range(len(array),1):
if (array[i-1]<=valor) or (array[i]>=valor):
#array.insert(i,valor)
print(i,'xxx',valor)
break
return array
def main():
global vetor
global original
print ('-------------------------------------------------------------
-----')
print ('original ',original)
print (' ---- ORDENADO selectionsort --------')
print (selectionSort(vetor))
vetor=original
print ('original ',vetor)
print (' ---- ORDENADO bubblesort --------')
print (bubbleSort(vetor))
original=[7,5,8,6,1,0,2,4,9,3]
print ('original ',original)
print (' ---- ORDENADO mergeSort --------')
vetor=original
print (mergeSort(vetor,0,len(vetor)-1))
vetor=[7,5,8,6,1,0,2,4,9,3]
print ('original ',vetor)
print (' ---- ORDENADO QuickSort --------')
print (quick_sort(vetor,0,len(vetor)-1))
print (' ---- Procurando um elemento vetor fora de ordem --------')
x=5
original=[7,5,8,6,1,0,2,4,9,3]
print ('original ',original)
result = binarySearch(original, 0, len(original)-1, x)
print (' ---- um elemento na posicao vetor ordenado --------
',result)
result = binarySearch(vetor, 0, len(original)-1, x)
print (' ---- um elemento na posicao --------',result)
vetor=insert_item(vetor,55)
print (vetor)
if __name__ == '__main__':
main()