# IAL-501 (Prof. Dr. Silvio do Lago Pereira)

from util import *

def troca(v,i,j):
    x = v[i]
    v[i] = v[j]
    v[j] = x

#-----------------------------------------------------------
# Exemplo 3
#-----------------------------------------------------------

def bsort(v):
    n = len(v)
    for i in range(1,n):
        for j in range(0,n-i):
            if v[j]>v[j+1]:
                troca(v,j,j+1)

#-----------------------------------------------------------
# Exemplo 4
#-----------------------------------------------------------

def seleciona(v,n):
    m = 0
    for j in range(1,n):
        if v[m] < v[j]:
            m = j
    return m

#-----------------------------------------------------------
# Exemplo 6
#-----------------------------------------------------------

def ssort(v):
    n = len(v)
    for i in range(n-1,0,-1):
        j = seleciona(v,i+1)
        troca(v,i,j)

#-----------------------------------------------------------
# Exemplo 7
#-----------------------------------------------------------

def insere(x,v,u):
    while u>=0 and x<v[u]:
        v[u+1] = v[u]
        u -= 1
    v[u+1] = x

#-----------------------------------------------------------
# Exemplo 9
#-----------------------------------------------------------

def isort(v):
    n = len(v)
    for i in range(1,n):
        x = v[i]
        insere(x,v,i-1)
