Artigos
Paulo Feofiloff
Instituto de Matemática e Estatística
Universidade de São Paulo
Campus/Elsevier
“Algoritmos em linguagem C”
Paulo Feofiloff editora Campus/Elsevier, 2009
www.ime.usp.br/ pf/algoritmos-livro/
P. Feofiloff (IME-USP)
Algoritmos em C
Campus/Elsevier
2 / 162
“Ciência da computação não é a ciência dos computadores, assim como a astronomia não é a ciência dos telescópios.”
— E. W. Dijkstra
P. Feofiloff (IME-USP)
Algoritmos em C
Campus/Elsevier
3 / 162
Leiaute
P. Feofiloff (IME-USP)
Algoritmos em C
Campus/Elsevier
4 / 162
Leiaute
Bom
Bom leiaute int Funcao (int n, int v[]) { int i, j; i = 0; while (i < n) { if (v[i] != 0) i = i + 1; else { for (j = i + 1; j < n; j++) v[j-1] = v[j]; n = n - 1;
}
} return n;
}
P. Feofiloff (IME-USP)
Algoritmos em C
Campus/Elsevier
5 / 162
Leiaute
Mau
Mau leiaute int Funcao (int n, int v[]) { int i, j; i = 0; while (i < n) { if (v[i] != 0) i = i + 1; else { for (j = i + 1; j < n; j++) v[j-1] = v[j]; n = n - 1;
}
} return n;
}
Use fonte de espaçamento fixo!
P. Feofiloff (IME-USP)
Algoritmos em C
Campus/Elsevier
6 / 162
Leiaute
Mau
Mau leiaute int Funcao (int n, int v[]) { int i, j; i = 0; while (i < n) { if (v[i] != 0) i = i + 1; else { for (j = i + 1; j < n; j++) v[j-1] = v[j]; n = n - 1;
}
} return n;
}
Use fonte de espaçamento fixo!
P. Feofiloff (IME-USP)
Algoritmos em C
Campus/Elsevier
6 / 162
Leiaute
Mau
Péssimo leiaute int Funcao ( int n,int v[] ){ int i,j; i=0; while(i v[i]) return x; else return v[i];
}
}
/* A função MaxR recebe v, i e n tais que i < n e devolve o valor de um elemento máximo de v[i..n-1]. */
P. Feofiloff (IME-USP)
Algoritmos em C
Campus/Elsevier
24 / 162
Vetores
P. Feofiloff (IME-USP)
Algoritmos em C
Campus/Elsevier
25 / 162
Vetores
Busca
Problema da