Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
ALGORITMOS DE ORDENAO
0|Page 8
Incio Ticongolo
Contents
1. 2. 3. 4. 5. INTRODUO ........................................................................................................... 2 BUBBLE SORT .......................................................................................................... 2 SELECTION SORT .................................................................................................... 4 INSERTION SORT ..................................................................................................... 6 EXERCCIO ................................................................................................................ 8
1|Page 8
Incio Ticongolo
1. INTRODUO
Na Cincia de Computao, ordenao de dados feita para posterior fcil manipulao, por exemplo busca eficiente.
Nesta cadeira veremos trs algoritmos de ordenao a saber: (i) Bubble Sort, (ii) Insertion Sort e (iii) Selection Sort.
2. BUBBLE SORT
O bubble sort, ou ordenao por flutuao (literalmente "por bolha"), um algoritmo de ordenao dos mais simples. A ideia percorrer o vector diversas vezes, a cada passagem fazendo flutuar para o topo o maior elemento da sequncia. Essa movimentao lembra a forma como as bolhas em um tanque de gua procuram seu prprio nvel, e disso vem o nome do algoritmo. Implementao em Fortran: DO i=1,tamanho DO j=1,tamanho-1 IF (array(j) > array(j+1)) THEN aux = array(j) array(j) = array(j+1) array(j+1) = aux END IF END DO END DO
2|Page 8
Incio Ticongolo
Exemplo 1: program bubbleSort integer i, array (5),tam array = (/10, 7, 9, 6, 2/) tam=SIZE(array) DO i=1,tam DO j=1,tam-1 IF (array(j) > array(j+1)) THEN aux = array(j) array(j) = array(j+1) array(j+1) = aux END IF END DO END DO print *, array end program
Execuo
Inicio 1 loop 2 loop 3 loop 4 loo 10 7 7 6 2 7 9 6 2 6 9 6 2 7 7 6 2 9 9 9 2 10 10 10 10
Incio Ticongolo
3|Page 8
3. SELECTION SORT
O selection sort (do ingls, ordenao por seleo) um algoritmo de ordenao baseado em se passar sempre o menor valor do vetor para a primeira posio (ou o maior dependendo da ordem requerida), depois o de segundo menor valor para a segunda posio, e assim feito sucessivamente com os (n-1) elementos restantes, at os ltimos dois elementos.
Implementao em Fortran: INTEGER :: i, j, min, max, tam DO i = 1, tam-1 min = i DO j=i+1, tam IF (array(j) < array(min)) THEN min = j ENDIF END DO aux = array(i) array(i) = array(min) array(min) = aux END DO
Exemplo 2: program selection_sort integer i, array (5),tam array = (/10, 7, 9, 6, 2/) 4|Page 8
Incio Ticongolo
tam=SIZE(array) DO i = 1, tam-1 min = i DO j=i+1, tam IF (array(j) < array(min)) THEN min = j ENDIF END DO aux = array(i) array(i) = array(min) array(min) = aux END DO print *, array end program
EXECUO:
10 2 2 2 2
7 7 6 6 6
9 9 9 7 7
6 6 7 9 9
2 10 10 10 10
5|Page 8
Incio Ticongolo
4. INSERTION SORT
insertion sort, ou ordenao por insero, um simples algoritmo de ordenao, eficiente quando aplicado a um pequeno nmero de elementos. Em termos gerais, ele percorre um vector de elementos da esquerda para a direita e medida que avana vai deixando os elementos mais esquerda ordenados. Implementao em Fortran: do i =2,n ! n tamanho do array value = array (i) j =i-1 do while ( j>0. and. array (j) > value) array (j+1)= array (j) array(j) = value j =j-1 end do array (j+1) =value end do
Exemplo 3: PROGRAM insertion_sort INTEGER i, array (5), value array = (/10, 7, 9, 6, 2/) DO i =2,5 value = array (i) j =i-1
6|Page 8
Incio Ticongolo
DO WHILE ( j>0. and. array (j) > value) array (j+1)= array (j) array(j) = value j =j-1 END DO array (j+1) =value END DO PRINT *, array END PROGRAM EXECUO:
Inicio 1oloop 2oloop 3 loop 4oloop 5oloop 6 loop 7oloop 8oloop 9oloop 10oloop 11oloop 12oloop 13oloop
o o
10 10 10 7 7 7 7 7 6 6 6 6 6 2
7 7 10 10 10 9 9 7 7 7 7 7 6 6
9 9 9 9 10 10 9 9 9 9 9 7 7 7
6 6 6 6 6 10 10 10 10 10 9 9 9 9
2 2 2 2 2 2 2 2 2 10 10 10 10 10
7|Page 8
Incio Ticongolo
5. EXERCCIO
Apresente a tabela de execuo para os seguintes algoritmos de ordenao crescent: a) Insertion Sort b) Bubble Sort c) Selection Sort
8|Page 8
Incio Ticongolo