// Algoritmo BUBBLESORT
// Função : Demonstração para o programa VisuAlg
// Autor : Claudio Morgado de Souza
// Data : 08/09/2002
algoritmo "Bubble Sort"
dos
var
a, b : inteiro
temp : real
x : vetor[1..10] de real
inicio
// Leitura dos dados
aleatorio 0,100,3
para a de 1 ate 10 faca
leia(x[a])
fimpara
// Ordenação
para a de 1 ate 10 faca
para b de 1 ate 9 faca
se x[b] > x[b+1] entao
temp <- x[b]
x[b] <- x[b+1]
x[b+1] <- temp
fimse
fimpara
fimpara
// Impressão dos dados ordenados
para a de 1 ate 10 faca
escreval(a:3," - ", x[a] : 10 : 3)
fimpara
fimalgoritmo
Formado em Análise e Desenvolvimento de Sistemas, analisa, projeta, documenta, especifica, testa, implanta e mantém sistemas computacionais de informação. Trabalha também com ferramentas computacionais, equipamentos de informática e metodologia de projetos na produção de sistemas. Raciocínio lógico, emprego de linguagens de programação e de metodologias de construção de projetos, preocupação com a qualidade, usabilidade, robustez, integridade e segurança de programas computacionais.
De que maneira seria o quicksort nesta mesma linguagem ?
ResponderExcluirQuicksort
ResponderExcluirO algoritmo Quicksort é um método de ordenação muito rápido e eficiente, inventado por C.A.R. Hoare em 19601 , quando visitou a Universidade de Moscovo como estudante. Naquela época, Hoare trabalhou em um projeto de tradução de máquina para o National Physical Laboratory. Ele criou o 'Quicksort ao tentar traduzir um dicionário de inglês para russo, ordenando as palavras, tendo como objetivo reduzir o problema original em subproblemas que possam ser resolvidos mais facil e rapidamente. Foi publicado em 1962 após uma série de refinamentos.2
O Quicksort é um algoritmo de ordenação por comparação não-estável.
http://pt.wikipedia.org/wiki/Quicksort
Resumindo, não tenho ele em VisuAlg
procedimento QuickSort(X[], IniVet, FimVet)
ResponderExcluirvar
i, j, pivo, aux
início
i <- IniVet
j <- FimVet
pivo <- X[(IniVet + FimVet) div 2]
enquanto(i < j)
| enquanto (X[i] < pivo) faça
| | i <- i + 1
| fimEnquanto
| enquanto (X[j] > pivo) faça
| | j <- j - 1
| fimEnquanto
| se (i <= j) então
| | aux <- X[i]
| | X[i] <- X[j]
| | X[j] <- aux
| | i <- i + 1
| | j <- j - 1
| fimSe
fimEnquanto
se (j > IniVet) então
| QuickSort(X, IniVet, j)
fimSe
se (i < FimVet) então
| QuickSort(X, i, FimVet)
fimse
fimprocedimento