Sei sulla pagina 1di 9

UNIVERSIDADE EDUARDO MONDLANE FACULDADE DE ENGENHARA

Disciplina: Informtica 2 Docente: dr. Incio G. Ticongolo

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:

Inicio 1oloop 2oloop 3oloop 4oloop

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

Dada o seguinte array: 100 80 90 70 200 10 30

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

Potrebbero piacerti anche