Índice Remissivoulysseso.com/livros/ed2/Indice.pdfÍndice Remissivo — A | 793 arquivo 64, 94...

26
791 Símbolos ^ (acento circunflexo) disjunção exclusiva de bits, operador de 700 | (barra vertical) disjunção de bits, operador de 700 & (e comercial) conjunção de bits, operador de 700 (final de prova) q.e.d. 162 (letra grega sigma maiúscula) alfabeto 452 >> (maior maior) deslocamento de bits à direita, operador de 701 << (menor menor) deslocamento de bits à esquerda, operador de 701 ⌊⌋ (piso esquerdo piso direito) função piso (matemática) 159 ⌈⌉ (teto esquerdo teto direito) função teto (matemática) 159 ~ (til), complemento, operador de 700 A "a+b", modo de abertura de arquivo 98, 115 "a", modo de abertura de arquivo 98 "a+", modo de abertura de arquivo 98, 115 "a+t", modo de abertura de arquivo 98, 115 "ab", modo de abertura de arquivo 98 abertura de arquivo 96–100 AbreArquivo(), função 96, 558, 658 ABS, macro 256 acerto de cache 74 acesso a instrução, localidade de 81 acesso aleatório a arquivo 106 acesso direto a arquivo 106, 111–115 acesso direto a memória 69 acesso sequencial vs. acesso direto 64–65 AcrescentaElementoIdx(), função 148, 152, 157 AcrescentaFuncaoAFiltro(), função 407 AcrescentaItemAFiltro(), função 407 adaptador SCSI/SATA 69 Adelson-Velskii e Landis 217 Afunila(), função 244 afunilamento de nó 234 alvo 234 ascendente 239 com configuração heterogênea 236–237 com configuração homogênea 235–236 descendente 239–241 exemplos de 237–239 filho da raiz 235 implementação de 244–246 zag 235 zag-zag 235–236 zag-zig 236–237 zig 235 zig-zag 236–237 zig-zig 235–236 AFUNILAMENTODESCENDENTE, algoritmo 239 X Procure um identificador pelo seu nome e não pela categoria à qual ele pertence. Por exemplo, não tente encontrar função printf(); em vez disso, procure diretamente printf(). X Número de página em negrito significa que a respectiva informação procurada está em nota de rodapé.

Transcript of Índice Remissivoulysseso.com/livros/ed2/Indice.pdfÍndice Remissivo — A | 793 arquivo 64, 94...

Page 1: Índice Remissivoulysseso.com/livros/ed2/Indice.pdfÍndice Remissivo — A | 793 arquivo 64, 94 abertura de 96–100 acesso direto a 106, 111–115 atualização de registro de 121–124

791

Símbolos

^ (acento circunflexo) disjunção exclusiva de bits, operador de 700

| (barra vertical) disjunção de bits, operador de 700& (e comercial) conjunção de bits, operador de 700∎ (final de prova) q.e.d. 162∑ (letra grega sigma maiúscula) alfabeto 452>> (maior maior) deslocamento de bits à direita, operador de

701<< (menor menor) deslocamento de bits à esquerda, operador

de 701⌊ ⌋ (piso esquerdo piso direito) função piso (matemática) 159⌈ ⌉ (teto esquerdo teto direito) função teto (matemática) 159~ (til), complemento, operador de 700

A

"a+b", modo de abertura de arquivo 98, 115"a", modo de abertura de arquivo 98"a+", modo de abertura de arquivo 98, 115"a+t", modo de abertura de arquivo 98, 115

"ab", modo de abertura de arquivo 98abertura de arquivo 96–100AbreArquivo(), função 96, 558, 658ABS, macro 256acerto de cache 74acesso a instrução, localidade de 81acesso aleatório a arquivo 106acesso direto a arquivo 106, 111–115acesso direto a memória 69acesso sequencial vs. acesso direto 64–65AcrescentaElementoIdx(), função 148, 152, 157AcrescentaFuncaoAFiltro(), função 407AcrescentaItemAFiltro(), função 407adaptador SCSI/SATA 69Adelson-Velskii e Landis 217Afunila(), função 244afunilamento de nó 234

alvo 234ascendente 239com configuração heterogênea 236–237com configuração homogênea 235–236descendente 239–241exemplos de 237–239filho da raiz 235implementação de 244–246zag 235zag-zag 235–236zag-zig 236–237zig 235zig-zag 236–237zig-zig 235–236

AfunilAmentoDescenDente, algoritmo 239

Índice Remissivo

X Procure um identificador pelo seu nome e não pela categoria à qual ele pertence. Por exemplo, não tente encontrar função printf(); em vez disso, procure diretamente printf().

X Número de página em negrito significa que a respectiva informação procurada está em nota de rodapé.

Page 2: Índice Remissivoulysseso.com/livros/ed2/Indice.pdfÍndice Remissivo — A | 793 arquivo 64, 94 abertura de 96–100 acesso direto a 106, 111–115 atualização de registro de 121–124

792 | Índice Remissivo — A

agregado, método de análise amortizada de 271, 275–276, 278–279. V. também análise amortizada

agrupamentoprimário 378secundário 379

alarme falso 404alfabeto 452algoritmo. Procure um algoritmo específico pelo nome dele 

de dispersão 360de divisão e conquista 624. V. também mergesort, algorit-

mo; V. também Quicksort, algoritmofuncionalmente equivalente 80de inserção 143de leitura sequencial de arquivo 110de redução e conquista 777de remoção 143

alocação dinâmica de memória 125, 296alteração de registro de arquivo 115altura

de árvore AVL 230de árvore B 349–350de árvore binária 255de trie 487, 499

AlturaArvoreBB2(), função 255AlturaAVL(), função 230AlturaB(), função 349AnalisaColisoes(), função 403análise amortizada

análise assintótica vs. 271de array dinâmico 277–281. V. também análise amortizada de

array dinâmicode árvore afunilada 281–285. V. também análise amortizada

de árvore afuniladacomparação com análise assintótica de caso médio 271comparação de métodos de 274custo amortizado em 270método contábil de 272–273, 276, 279–280método de agregado de 272, 275–276, 278–279método de potencial de 273–274, 276–277, 280, 281–285moeda virtual de 272quando usar 271sequência de operações em 270de tabela de destruição 275

análise amortizada de array dinâmico 277–278efeito de crescimento geométrico na 280–281usando método contábil 279–280usando método de agregado 278–279usando método de potencial 280

análise amortizada de árvore afuniladade caso zig 282de caso zig-zag 283de caso zig-zig 284custo temporal de afunilamento 282custo temporal de inserção/remoção 285função potencial em 281posto de nó em 281tamanho de nó em 281

análise assintótica 270, 271, 277, 344. V. também análise de algoritmo

análise de algoritmoamortizada. V. análise amortizadade array dinâmico. V. análise amortizada de array dinâmicode árvore afunilada. V. análise amortizada de árvore afuniladade árvore AVL 232–233de árvore B 329–331de árvore B+ 344–345de árvore binária ordinária de busca 213Boyer e Moore, de casamento de 472de BuBBlesort 585–586de Bucketsort 617de busca binária 162–164de busca sequencial 151–152de countingsort 613–614de dispersão com encadeamento 375–376de dispersão com endereçamento aberto 384–386de dispersão cuco 398–399de dispersão estática em memória secundária 427de dispersão extensível em memória secundária 445–446espacial. V. custo espacialde fila de prioridade 548força bruta, de casamento de strings por 457–458de heap binário 547–548de HeApsort 609–610Horspool, de casamento (ou simplificação) de 476–477de inserção massiva em árvores B+ 683de insertionsort 590–591de intercalação binária de arquivos 659de intercalação multíplice de arquivos 672–673de intercalação multíplice de arrays 662Karp e Rabin, de casamento de 484–485Knuth, Morris e Pratt, de casamento de 463–464limite inferior de ordenação externa e 673–674de lista com saltos 178–180em memória principal vs. em memória secundária 84–86em memória secundária 297–298de mergesort 604–605notação usada em memória secundária para 298de Quicksort 596–599de rADixsort 621de redimensionamento de dispersão 388regra da soma de 157, 232, 605regra do produto de 586, 605de selectionsort 588tabela de busca encadeada, de operação em 155–156tabela de busca indexada, de operação em 151–152temporal. V. custo temporalde trie 497–499

análise de dispersão 399–400análise espacial. V. custo espacialanálise temporal. V. custo temporalantecessor imediato (nó) 203aplicativo 143ApresentaHora(), função 569arquitetura de computador 67–71

Page 3: Índice Remissivoulysseso.com/livros/ed2/Indice.pdfÍndice Remissivo — A | 793 arquivo 64, 94 abertura de 96–100 acesso direto a 106, 111–115 atualização de registro de 121–124

Índice Remissivo — A | 793

arquivo 64, 94abertura de 96–100acesso direto a 106, 111–115atualização de registro de 121–124binário. V. arquivo bináriobuffer associado a 95cluster de 64conversão de texto para binário 124–125cópia de 120–121CSV 503de dados. V. arquivo de dadoserro em processamento de 100–101escrita em 107–115escrita para leitura, passagem de 114FASTA 697fechamento de 99–100formato de 94fragmentação de 65grande 117–118indicador de erro em processamento de 95indicador de final de 95indicador de posição de 95, 111–115, 116índice de byte em 118índice de registro em 118leitura em 107–115leitura para escrita de, passagem de 114organização de 65posicionamento em 111–115, 116processamento de. V. processamento de arquivorebatismo de 105registro de. V. registro de arquivoremoção de 105temporário 104–105, 650, 674de texto. V. arquivo de textotexto para binário, conversão de 124–125

arquivo binário 94. V. também arquivo de dadoscriação de 124–125escrita em 107–110leitura em 107–115

arquivo de dados 693–697CensoMEC.bin 696–697CEPs.bin 694–696DNA.txt 697Machado.txt 697Tudor.txt 693–694

arquivo de texto 94. V. também arquivo de dadosatualização de 121–124conversão em arquivo binário de 124–125escrita em 107–111em formato FASTA 697leitura em 107–111linha vazia de 118salto de linha de 118–120

array bidimensional 79–80acesso por coluna de 80acesso por linha de 79padrão de referência em processamento de 80–81

array dinâmico 145, 148, 277–281árvore afunilada 233–234

afunilamento de 234–241. V. também afunilamento de nóanálise amortizada de. V. análise amortizada de árvore afuni-

ladaanálise de 249. V. também análise amortizada de árvore

afuniladabusca em 241–242implementação de 244–249inserção em 242–243posto de nó de 281remoção em 243–244tamanho de nó de 281

árvore autoajustável 233. V. também árvore afunilada; V. tam-bém árvore AVL

árvore AVL 217–218altura de 232análise de 232–233árvore perfeitamente balanceada vs. 217balanceamento de nó 217, 255–256busca em 229caminho de inserção e remoção remoção em 218desbalanceamento de 219–228. V. também desbalanceamento

de árvore binária de buscaimplementação de 228–232inserção em 218–225propagação de desbalanceamento em 226rebalanceamento de 219–228remoção em 225–228verificação de balanceamento de 255–256

árvore B 309altura de 349–350análise de 329–331busca em 309, 329–331divisão de nó de 310grau mínimo de 319inserção em 309–313junção de nós de 314–315maior e menor chaves de 347–348número de chaves de 349número de nós de 348–349persistência de dados em 328–329profundidade de 349–350programa-cliente de 329remoção em 313–319com tendência direita 310com tendência esquerda 310variante de 345–346

árvore B* 345–347árvore B# 346árvore B+ 331–332

análise de 344–345bulkloading de 674–683busca de intervalo em 342–343, 350–352busca em 332conjunto de índices de 332conjunto sequencial de 332

Page 4: Índice Remissivoulysseso.com/livros/ed2/Indice.pdfÍndice Remissivo — A | 793 arquivo 64, 94 abertura de 96–100 acesso direto a 106, 111–115 atualização de registro de 121–124

794 | Índice Remissivo — B

custo de transferência de 344–345implementação de 343–344inserção em 332–336inserção massiva em 674–683primeira chave de folha de 336remoção em 336–342

árvore bináriaafunilada 233–234. V. também árvore afuniladaAVL 217–218. V. também árvore AVLde busca. V. árvore binária de buscacompleta 537. V. também árvore binária completade busca 196degenerada 196inclinada 216perfeitamente balanceada 216repleta 609rubro-negra xlix, 196

árvore binária completaarray, implementada com 538filho de nó de 539como heap binário 538. V. também heap bináriopai de nó de 537

árvore binária de busca 196afunilada 233–234. V. também árvore afuniladaAVL 217–218. V. também árvore AVLordinária 196–198. V. também árvore binária ordinária de

buscarubro-negra xlix, 196

árvore binária ordinária de busca 196–198análise de 213busca em 200–201caminhamento em ordem infixa em 197–198implementação de 203–212iniciação de 204inserção em 198–200maior chave de 251–252menor chave de 251–252ordenação de chaves de 197–198, 252–253remoção em 201–203validação de 253–255

árvore multidirecional ascendente 311. V. também árvore B; V. também árvore B+

árvore multidirecional descendente de busca 288–290, 298análise de 295balanceada 289busca em 290–291, 302–303caminhamento em 347chave de 288dimensionamento de grau de 298–300escrita de nó de 301filho de chave de 288folha de 289grau de 288implementação em memória principal de 294–295implementação em memória secundária de 298–309inserção em 292–293, 303–306leitura de nó de 301

maior/menor chave de 347–348nó completo/incompleto de 289ordem de 288remoção em 293–294, 306–309semifolha de 289tratamento de exceção em 300–301

árvore rubro-negra xlix, 196árvores binárias de busca, comparação de 249–251árvores multidirecionais de busca, comparação de 346árvore ternária de busca 499ASSEGURA, macro 300AssociaPonteiros(), função 633"at", modo de abertura de arquivo 98ATENDIMENTO, constante 567atoi(), função de biblioteca 162AtualizaArquivo(), função 123atualização de registro de arquivo de texto 121–124AtuAlizAinDiceemÁrvoreB+, algoritmo 340avaliação de algoritmo. V. análise de algoritmoavaliação experimental

de intercalação binária de arquivos 658–659de lista com saltos 180–181de método de ordenação 627–631

B

backup (de dados) 67baixo nível, operação de 699–712. V. também bit; V. tam-

bém operador de bitsBalanceamentoAVL(), função 230balanceamento de árvore binária 216–217. V. também árvore

AVLcálculo de 230manutenção de. V. árvore AVLde nó 217perfeito 216restabelecimento de. V. árvore AVLverificação de 255–256

bandeira holandesa, problema da 634–635barramento 67, 68barra vertical (símbolo) disjunção exclusiva de bits 700BASE, constante 483, 522base numérica 699–700BASE_RADIX, constante 619bastão de memória 66Bernstein, função de dispersão de 714bit

consulta de 706–707cópia de 701–703desligação de 705–706deslocamento de 701inversão de 706ligação de 705–706LSB (bit menos significativo) 703mais significativo 704–705mascaramento de 701–703menos significativo 703

Page 5: Índice Remissivoulysseso.com/livros/ed2/Indice.pdfÍndice Remissivo — A | 793 arquivo 64, 94 abertura de 96–100 acesso direto a 106, 111–115 atualização de registro de 121–124

Índice Remissivo — B | 795

bit (continuação)MSB (bit mais significativo) 704–705operador de. V. operador de bitsrepresentação de valor do tipo int 707–708

blocagem 81–83bloco

de disco magnético 64–65, 82, 296de memória principal 109–111

Bm, algoritmo 467. V. também Boyer e Moore, algoritmo de casamento de

BmH, algoritmo 475. V. também Horspool, algoritmo de casa-mento (ou simplificação) de

bolha, método de ordenação da. V. BuBBlesort, algoritmobom sufixo 465–466Boyer e Moore, algoritmo de casamento de 464–468

análise de 472heurística de bom sufixo de 465–467heurística de mau caractere de 465implementação de 468–472

bsearch(), função de biblioteca 160–161, 253BuBBlesort, algoritmo 584–585, 634

análise de 585–586implementação de 585

BubbleSort(), função 585bucket (coletor) 360, 420. V. também Bucketsort, algoritmoBucketsort, algoritmo 615–616

análise de 617implementação de 616–617

BucketSort(), função 616buffer

área de 95, 101descarga de 99, 117, 666de entrada 665, 666fflush() e 101recarga de 666de saída 652, 665, 666stream de atualização e 102stream de entrada e 102stream de saída e 101tamanho de (em ordenação em memória secundária) 672tipos de 101uso de 658

buffering 101buffering e bloco de disco magnético 65bulkloading 674. V. também inserção massiva em árvores B+BulkloADingDeÁrvoresB, algoritmo 780busca 140

algoritmo de 141em árvore afunilada 241em árvore AVL 229em árvore B 309em árvore B+ 332em árvore binária ordinária de busca 200–201em árvore multidirecional descendente 290, 302–303bem-sucedida 141binária 159–161. V. também busca bináriachave de 141

com chave secundária 184–187dedilhada 142em dispersão com encadeamento 371em dispersão com endereçamento aberto 380em dispersão cuco 392em dispersão estática em memória secundária 421em dispersão extensível em memória secundária 432externa 142de Fibonacci 181–184hierárquica em memória principal 196. V. também árvore

AVL; V. também árvore binária ordinária de busca; V. também árvore afunilada

hierárquica em memória secundária 288. V. também árvore B; V. também árvore B+

interna 141por interpolação 161de intervalo 142, 188, 350–352, 446linear 140. V. também busca linearem lista com saltos 167–168de maior chave 143malsucedida 141em memória principal 140de menor chave 142de piso de chave 142, 187sequencial 145. V. também busca sequencialsequencial com movimentação para início 154–155sequencial com transposição 153–154em tabela encadeada 153–156em tabela indexada 145, 159–161em tabela ordenada 159–161. V. também busca bináriade teto de chave 142em trie 488–489

BuscaArvoreBB(), função 204BuscaArvoreFunil(), função 246BuscaB(), função 323busca binária 159–160

análise de 162–164usando bsearch() 160–161implementação de 160número máximo de comparações de chaves em 163overflow em 160

BuscABinÁriA, algoritmo 159BuscaBinariaIdx(), função 160, 162BuscaComMovimentoLSE(), função 155BuscaComTransposicaoLSE(), função 154BuscaCuco(), função 395BuscaDEA(), função 383BuscADefiBonAcci, algoritmo 181BuscaDE(), função 373busca de intervalo 142, 446

em árvore B+ 342, 350–352em lista simplesmente encadeada 188

BuscaDEst(), função 424BuscaDExt(), função 438BuscAemÁrvoreAfunilADA, algoritmo 241BuscAemÁrvoreB+, algoritmo 332BuscAemÁrvoreBinÁriADeBuscA, algoritmo 201

Page 6: Índice Remissivoulysseso.com/livros/ed2/Indice.pdfÍndice Remissivo — A | 793 arquivo 64, 94 abertura de 96–100 acesso direto a 106, 111–115 atualização de registro de 121–124

796 | Índice Remissivo — C

BuscAemÁrvoremultiDirecionAl, algoritmo 290BuscAemDispersãocomencADeAmento, algoritmo 372BuscAemDispersãocomenDereçAmentoABerto, algoritmo

380BuscAemDispersãocuco, algoritmo 392BuscAemlistAcomsAltos, algoritmo 167–168BuscaEmNoMultiMS(), função 302, 320BuscAemtABelADeDispersãoestÁticA, algoritmo 421BuscAemtABelADeDispersãoextensível, algoritmo 432BuscAemtrie, algoritmo 489BuscaEmTrie(), função 495, 513BuscaFibonacciIdx(), função 183BuscaInterpolacaoIdx(), função 162BuscaIntervaloBM(), função 350BuscaIntervaloLSE(), função 188busca linear

binária 159–161. V. também busca bináriade Fibonacci 181–184por interpolação 161–162sequencial 145em tabela ordenada 159–166. V. também busca bináriaem tabela sem ordenação 145. V. também busca sequencial

BuscaListaComSaltos(), função 172BuscaListaSE(), função 374BuscaMultiMS(), função 302BuscaPisoIdx(), função 187busca por interpolação 161–162BuscaSecundariaLSE(), função 185, 188busca sequencial 146–148BuscAseQuenciAl, algoritmo 145BuscaSequencialIdx() 146BuscaTrieMachado(), função 506byte, índice de 118

C

cache 73–76caching 73–76cadeia de coletores excedentes 421cadeia de DNA 513caminhamento infixo

em árvore binária de busca 197, 214em árvore multidirecional de busca 347

CaminhamentoInfixoBB(), função 252CaminhamentoInfixoB(), função 347CaraOuCoroa(), função 175CarregaBufferMS(), função 658, 671CasaFluxoContinuo(), função 523casamento

de chaves 141de padrões. V. casamento de stringsde palavras 500de strings 452. V. também casamento de strings

CasamentoBM(), função 471CasamentoBMH(), função 476casamento de palavras vs. casamento de strings 500–501

casamento de stringsalfabeto em 452borda em 453de Boyer e Moore (Bm). V. Boyer e Moore, algoritmo de

casamento decasamento de palavras vs. 500–502comparação de algoritmos de 485–486deslizamento de padrão em 453falso 477em fluxo contínuo 523–525de força bruta (fB). V. força bruta, algoritmo de casamento

de strings porde Horspool (BmH). V. Horspool, algoritmo de casamento

(ou simplificação) depor impressão digital 477. V. também Karp e Rabin, algorit-

mo de casamento dede Karp e Rabin (kr). V. Karp e Rabin, algoritmo de casa-

mento dede Knuth, Morris e Pratt (kmp). V. Knuth, Morris e Pratt,

algoritmo de casamento deléxico 519–522padrão em 452prefixo em 453prefixo próprio em 453com retrocesso 454salto em 453substring em 452, 453sufixo em 453sufixo próprio em 453tamanho de alfabeto em 452texto em 452visualização de 453–454

CasamentoFB(), função 456CasamentoKMP(), função 462CasamentoKR(), função 482casamento léxico de strings 519–522CasamentoLexico(), função 521censo escolar 696CensoMEC.bin, arquivo de dados 696–697CEPs.bin, arquivo de dados 694–697CHAR_BIT, constante de biblioteca 560, 616, 707chave 140, 580

de árvore multidirecional descendente de busca 288de busca 141composta 365duplicada 636externa 141filho direito/esquerdo de 288interna 141, 696, 697piso de 187primária 140secundária 140valor de 140

CHEGADA, constante de enumeração 567Clang, compilador 118classificação 580. V. também ordenaçãoclearerr(), função de biblioteca 101

Page 7: Índice Remissivoulysseso.com/livros/ed2/Indice.pdfÍndice Remissivo — A | 793 arquivo 64, 94 abertura de 96–100 acesso direto a 106, 111–115 atualização de registro de 121–124

Índice Remissivo — C | 797

cliente, programa- 143coDificAArQuivo, algoritmo 554codificação de Huffman 551–566

árvore de 554cabeçalho de 552canônica 552decodificação da 563–566fila de prioridade em 554lista de códigos canônicos em 555metadado de 552obtenção de código em 555–563padrão 552

CodificaHuff(), função 556código canônico 553ColetaPares(), função 685coletor 360, 420. V. também Bucketsort, algoritmo; V. tam-

bém dispersão com endereçamento abertocamarada 432excedente 420, 434–436primário 420

colisão 362em dispersão com encadeamento 371em dispersão com endereçamento aberto 377–380em dispersão cuco 389–392em dispersão em memória principal 362em dispersão em memória secundária 420–421, 428–431Karp e Rabin, no algoritmo de 477resolução de 362, 377–380

CompactaNoMultiMS(), função 308, 327comparação

entre os algoritmos Bm e BmH 473de algoritmos de casamento de strings 485entre análise amortizada e análise assintótica de caso médio

271entre árvores binárias de busca 249–251entre árvores multidirecionais de busca 346entre busca de Fibonacci e a busca binária 184de chaves 580entre codificação padrão e codificação canônica de Huffman

553entre dispersão em memória secundária e árvores da família

B 446entre busca por interpolação e busca binária 165função de 157, 547, 555, 561de implementações de filas de prioridade 548entre intercalação binária e multíplice 668entre lista com saltos e outras tabelas de busca 180entre memórias SRAM e DRAM 57de métodos de análise amortizada 274de métodos de sondagem 386ordenação baseada em 582–583, 615, 617, 621–624entre tabela de dispersão e tabela indexada 361entre tries e outros tipos de árvores de busca 498

ComparaCEPs(), função 157ComparaInts2(), função 657ComparaInts(), função 254, 547, 628ComparaIntsInv(), função 628

ComparaNosHeapHuff(), função 555ComparaStr(), função 686ComparaTamanhosHuff(), função 561compilador

Clang 118GCC 118

complemento, operador de 700complexidade de algoritmo. V. análise de algoritmoComprimentoListaSE(), função 186condição de erro em arquivo 100–101condição de exceção 116. V. também tratamento de exceçãoconfusão em função de dispersão 368conjunção de bits, operador de 700conjunto de índices de árvore B+ 332conjunto sequencial de árvore B+ 332constante simbólica. Procure uma constante simbólica específica

pelo nome dela notação para escrita de 719

constróiÁrvoreDeHuffmAn, algoritmo 551ConstroiNoArvoreBB(), função 207, 255ConstroiNoArvoreHuff(), função 558ConstroiTabelaIdx(), função 158ConstroiTrieMachado(), função 508construção. V. criaçãoconsulta. V. também busca

de bit 706–707em heap binário 543de pertinência 404

ConsultaBitEmArray(), função 558ConsultaBit(), função 558, 707contábil, método de análise amortizada 271, 272–273, 276,

279–280. V. também análise amortizadacontagem de frequência 583ContemDuplicatasListaIdx(), função 636ContemDuplicatasListaIdxOrd(), função 636conteúdo de memória de buffer 99, 101controlador de disco 69controlador de USB 68conversão entre bases hexadecimal e binário 700CopiaArquivo(), função 120, 658CopiaChavesB(), função 321cópia de arquivo 120–121CopiaRestoArquivo(), função 658corolário

3.1 (pior caso de construção de tabela indexada) 1523.2 (custo temporal de construção de tabela encadeada) 1553.3 (pior caso de busca binária) 1643.4 (custo temporal de busca por interpolação) 1654.1 (pior caso de operação em árvore binária ordinária de

busca) 2135.1 (custo temporal amortizado de busca em árvore afunilada)

2845.2 (custo temporal amortizado de inserção em árvore afuni-

lada) 2855.3 (custo temporal amortizado de remoção em árvore afuni-

lada) 2856.1 (número de chaves num nível de árvore B) 330

Page 8: Índice Remissivoulysseso.com/livros/ed2/Indice.pdfÍndice Remissivo — A | 793 arquivo 64, 94 abertura de 96–100 acesso direto a 106, 111–115 atualização de registro de 121–124

798 | Índice Remissivo — C

corolário (continuação)7.1 (nós visitados em inserção em dispersão com encadeamen-

to com lista ordenada) 37511.1 (pior caso do algoritmo Quicksort) 597

CORRECAO, macro 343corrupção de memória usando fgets() 108countingsort, algoritmo 611–614

análise de 613–614implementação de 612–613

CountingSort(), função 612CPU 67CriaArquivoApenasCEPs(), função 628CriaArquivoBin(), função 124criAÁrvoreB+comBulkloADing, algoritmo 675CriaArvoreBM(), função 679criação

de arquivo temporário 104–105de árvore B 328de árvore binária de busca 204de árvore B+ usando inserção massiva 674–683de árvore de codificação de Huffman 551de coletor de tabela de dispersão extensível 434–435, 438de filtro de Bloom 404de heap binário 542–543, 608–610de lista com saltos 167de nó de árvore multidirecional em memória secundária 304,

320de nó interno de árvore B+ 335de nova raiz de árvore B 312de série de intercalação binária em memória secundária 651de série de intercalação multíplice em memória secundária

667de tabela de bons sufixos 467de tabela de busca com dispersão extensível 437de tabela de busca indexada 146, 150–151de tabela de busca indexada ordenada 166de tabela de dispersão com encadeamento 373de tabela de dispersão com endereçamento aberto 382de tabela de dispersão cuco 394de tabela de maiores bordas de string 459–460de tabela de maus caracteres 467de tabela de saltos 473de trie 508–509

CriaEvento(), função 569CriaFiltro(), função 406CriaHeapHuff(), função 558CriaListaCanonicaHuff(), função 560CriaPilha(), função 328criAséries, algoritmo 651CriaSeriesMS(), função 652CriaTabelaApenasCEPs(), função 628CriaTabelaCuco(), função 394CriaTabelaDEA(), função 382CriaTabelaDE(), função 373criAtABelADesAltosBmH, algoritmo 475CriaTabelaIdx(), função 146criAtBBonssufixos, algoritmo 467

criAtBmAuscArActeres, algoritmo 467criAtmB, algoritmo 460CriaTMB(), função 461, 524CSV, formato de arquivo 503, 696custo amortizado 270. V. também análise amortizadacusto de entrada e saída 288. V. também custo de transferênciacusto de transferência 288

de árvore B 329–330de árvore B+ 344de tabela de dispersão extensível 445

custo espacialdo algoritmo BmH 476de árvore AVL 232de árvore binária de busca 232Bucketsort, do algoritmo 617countingsort, do algoritmo 614de dispersão com endereçamento aberto 386de dispersão cuco 399de dispersão extensível em memória secundária 445–446de intercalação de duas listas 604de lista com saltos 179em memória interna 84em memória secundária 84, 85mergesort, do algoritmo 605de mergesort para lista encadeada 603Quicksort, do algoritmo 598rADixsort, do algoritmo 621de tabela de busca encadeada 156de tabela de dispersão extensível 445de trie 497, 498

custo temporalamortizado 270. V. também custo temporal amortizadoárvore afunilada, de operação em 249, 251. V. também custo

temporal amortizadoárvore AVL, de operação em 232árvore binária ordinária de busca, de operação em 200, 213BuBBlesort, do algoritmo 585Bucketsort, do algoritmo 617de busca binária 164de busca de Fibonacci 184de busca por interpolação 165de busca sequencial 151de cálculo de comprimento de MSC 517de casamento de palavras usando trie 510de casamento de strings de Boyer e Moore (Bm) 472de casamento de strings de Horspool (BmH) 476de casamento de strings de Karp e Rabin (kr) 484de casamento de strings de Knuth, Morris e Pratt (kmp)

463de casamento de strings por força bruta (fB) 457chave duplicada em lista indexada, de verificação de 636countingsort, do algoritmo 613de dispersão com encadeamento 371, 375, 376de dispersão com endereçamento aberto 385–386em dispersão cuco 399de distância de edição 519fila de prioridade, de operação em 537, 548

Page 9: Índice Remissivoulysseso.com/livros/ed2/Indice.pdfÍndice Remissivo — A | 793 arquivo 64, 94 abertura de 96–100 acesso direto a 106, 111–115 atualização de registro de 121–124

Índice Remissivo — D | 799

custo temporal (continuação)de função de dispersão 364heap binário, de inserção/remoção em 547HeApsort, do algoritmo 609insertionsort, do algoritmo 590, 591limite inferior para algoritmo baseado em comparações

621–624linear de ordenação 610–621linear logarítmico de ordenação 592–610lista com saltos, de operação em 179mergesort, do algoritmo 604de ordenação de listas encadeadas com mergesort 603, 604de ordenação em memória secundária 650quadrático de ordenação 584–591Quicksort, do algoritmo 597–598rADixsort, do algoritmo 621realloc(), da função de biblioteca 152de rotação em árvore binária 216selectionsort, do algoritmo 588tabela de busca encadeada, de operação em 155, 156tabela de busca indexada, de operação em 151, 152, 157,

277. V. também custo temporal amortizadotabela de maiores bordas, de construção de 463tabela indexada ordenada, de inserção em 165trie, de operação em 497trivial de casamento de strings 457

custo temporal amortizadode afunilamento 282árvore afunilada, de operação em 284, 285de tabela de destruição 276tabela indexada dinâmica, de inserção em 279

D

DecoDificAArQuivo, algoritmo 563DecodificaHuff(), função 565dependência de implementação

arquivos abertos simultaneamente, do número de 97de EOF (constante de biblioteca) 100de FILE (tipo de biblioteca) 95

desalojamento de bloco em caching 74desalojamento de cache 75desbalanceamento de árvore binária de busca

direita-direita 221–222, 226direita-esquerda 222, 226esquerda-direita 220–221, 225–226esquerda-esquerda 219–220, 225inserção, devido a 219–225propagação de 226remoção, devido a 225–227

Desempilha(), função 328DesligaBit(), função 705desligação de bit 705–706DeslocaBitsEsquerda(), função 562deslocamento de bit, operador de 701

à direita 701à esquerda 701

DespachaEvento(), função 570DestroiArvoreBB(), função 255DestroiArvoreHuff(), função 558DestroiFiltro(), função 407DestroiHeap(), função 544DestroiHeapHuff(), função 558DestroiListaSE(), função 186, 275DestroiTabelaCuco(), função 398DestroiTabelaIdx(), função 146destruição 143

de árvore binária 255, 558de filtro de Bloom 407de heap binário 544, 558de lista simplesmente encadeada 186, 275tabela de 275–277de tabela de busca indexada 146de tabela de dispersão cuco 398

dicionário 140difftime(), função de biblioteca 86difusão de função de dispersão 368digital de Rabin 365, 434, 478, 480DigitalRabinErrada(), função 478DigitalRabin(), função 479disco de estado sólido (SSD) 65disco magnético 58–65

atraso rotacional de 62bloco de 64–65cabeça de leitura e escrita de 58capacidade de 60–61cluster de 64controlador de 69densidade de 60espaço ocioso em 64formatação de 61fragmentação de 65geometria de superfície de 59–60latência rotacional de 62MTTF de 64prato de 58SATA 69SCSI 69seek time de 61setor de 59–60superfície de 58tamanho de bloco de 82taxa de transferência de dados de 63tempo de acesso de 61tempo de posicionamento de 61tempo de transferência de 62tempo médio de falha de 64tempo médio de latência de 62trilha de 59

disco rígido. V. disco magnéticodisco SSD 65disjunção de bits 700disjunção exclusiva de bits (xor) 366, 700

Page 10: Índice Remissivoulysseso.com/livros/ed2/Indice.pdfÍndice Remissivo — A | 793 arquivo 64, 94 abertura de 96–100 acesso direto a 106, 111–115 atualização de registro de 121–124

800 | Índice Remissivo — D

dispersãoalgoritmo de 360análise de 399–400colisão em 362cuco 388. V. também dispersão cucocom encadeamento 362. V. também dispersão com encadea-

mentocom endereçamento aberto 362. V. também dispersão com

endereçamento abertoestática. V. dispersão estática em memória secundáriaextensível. V. dispersão extensível em memória secundáriafator de carga de 362função de 360. V. também função de dispersãoem memória principal. V. dispersão em memória principalem memória secundária. V. dispersão em memória secundáriamétodo de 360modular 365polinomial 366redimensionamento de 386. V. também redimensionamento

de dispersãocom sondagem 362. V. também dispersão com endereçamen-

to abertotabela de 360valor de 360

dispersão com encadeamento 362, 371análise de 375–376busca em 371–372fator de carga em 371, 376implementação de 372–375inserção em 372redimensionamento de tabela de. V. redimensionamento de

dispersãoremoção em 372

dispersão com endereçamento aberto 376–377análise de 384–386busca em 380comparação de métodos de sondagem de 386custo espacial de 386custo temporal de 385–386fator de carga de 376, 378, 385implementação de 382–384inserção em 381redimensionamento de tabela de. V. redimensionamento de

dispersãoremoção em 381resolução de colisão em 377–380sondagem dupla em 379–380sondagem linear em 377–378sondagem quadrática em 378–379

dispersão cuco 388–392análise de 398–399busca em 392custo temporal amortizado de 399desalojamento em 388desvantagem de 399implementação de 394–398inserção em 392–393

pássaro cuco, analogia com 388remoção em 393–394vantagem de 399

DispersaoDJB2(), função 714DispersaoDJB(), função 714dispersão em memória principal

aplicações de 362–363cuco 388–399. V. também dispersão cucocom encadeamento 371–376. V. também dispersão com

encadeamentocom endereçamento aberto 376–386. V. também dispersão

com endereçamento abertofator de carga de 362. V. também fator de cargaredimensionamento de 386–388. V. também redimensiona-

mento de dispersãocom sondagem 376–386. V. também dispersão com endereça-

mento abertodispersão em memória secundária 420

avaliação de 446estática 420–427. V. também dispersão estática em memória

secundáriaextensível 427–446. V. também dispersão extensível em

memória secundáriadispersão estática em memória secundária 420

análise de 427busca em 421coletor de 420coletor excedente/primário de 420implementação de 422–427inserção em 420–421número de coletores primários vazios em 446–447remoção em 422

dispersão extensível em memória secundária 427–428análise de 445–446busca em 432coletor camarada de 432coletor excedente de 434–436custo espacial de 445–446desvantagem de 445uso de digital de Rabin em 434diretório de 427implementação de 437–445índice de 427inserção em 428–431maior profundidade local em 447profundidade de diretório de 428profundidade global de 428profundidade local de 428remoção em 432–433tabela de 427vantagem de 445

DispersaoFNV(), função 715DispersaoJOAAT(), função 714DispersaoJSW(), função 716DispersaoMisturaJunior(), função 710DispersaoMisturaMedio(), função 711DispersaoMultiplicacao(), função 367

Page 11: Índice Remissivoulysseso.com/livros/ed2/Indice.pdfÍndice Remissivo — A | 793 arquivo 64, 94 abertura de 96–100 acesso direto a 106, 111–115 atualização de registro de 121–124

Índice Remissivo — E | 801

dispersão por mistura 708–712DispersãopormisturA, algoritmo 708dispersão rotativa 368DispersaoRotativa(), função 368DispersaoSAX(), função 715dispersão xor 367–368DispersaoXOR(), função 367DispersoesLexico(), função 520dispositivo de entrada 68dispositivo de saída 68dispositivo periférico 94

arquivo e 94buffer associado a 99de entrada 94padrão 102de saída 94stream e 94

distância de edição 517–519DistanciaDeEdicao(), função 518distância de Levenshtein 518distribuição exponencial 550DiviDecoletorDeDispersãoextensível, algoritmo 431DivideColetorDExt(), função 440DivideNoB(), função 322DiviDenóemÁrvoreB, algoritmo 313DiviDenointernoB+, algoritmo 676divisão de nó

de árvore B 310, 313de árvore B+ 332–336, 676

divisão e conquista, algoritmo/paradigma de 624divisão modular 366–367DJB 714DJB2 714DMA 69DNA.txt, arquivo de dados 697DRAM 56–57. V. também memóriaDRand(), função 569

E

e comercial (símbolo) conjunção de bits, usado em operador de 700

EEPROM 57. V. também memóriaEhArvoreAVL(), função 255EhArvoreBinDeBusca(), função 253EhNoFinalDeTrie(), função 495EhNoFinalTrieMachado(), função 505EhNoVazioDeTrie(), função 495elemento ativo (em intercalação multíplice de arquivos) 665ElementoTopo(), função 328Empilha(), função 328EncontraCaminhoB(), função 320EncontraNoMultiMS(), função 305, 310end of file (EOF) 100entrada, dispositivo de 68entrada e saída

meio de 102

operação de 69–71EOF, constante de biblioteca 100–101, 103, 117EPROM 57. V. também memóriaequação de recorrência. V. relação de recorrênciaerro falso-negativo 404erro falso-positivo 404ERRO_FREAD, macro 301ERRO_FWRITE, macro 301ERRO_OPEN, macro 300ERRO_POSICAO, macro 301ERRO_SEEK, macro 300ERRO_STREAM_NULL, macro 301ERRO_TELL, macro 301EscreveCabecalhoHuff(), função 563EscreveColetorDEst(), função 424, 440EscreveColetorDExt(), função 440EscreveEmArquivoArvoreBB(), função 252EscreveNoMultiMS(), função 301, 320EscreveRaizB(), função 329escrita de dados

em arquivo binário 107–110, 124–125em arquivo de texto 107–111formatada 102–103. V. também escrita formatada

escrita formatada 102fprintf() e, função de biblioteca 103printf() e, função de biblioteca 103sprintf() e, função de biblioteca 103–104

estado interno de valor de dispersão 368EstaVaziaLSE(), função 186estilo de escrita de identificador 719–720estrutura de dados

em memória interna 140. V. também estrutura de dados em memória principal

em memória principal 140, 360, 486, 536. V. também estru-tura de dados em memória principal

em memória secundária 84–86, 288, 420. V. também estrutu-ra de dados em memória secundária

probabilística 167estrutura de dados em memória principal

árvore AVL 217–233, 255–256. V. também árvore AVLárvore binária afunilada 233–249. V. também árvore afuni-

ladaárvore binária ordinária de busca 196–213, 251–254. V.

também árvore binária ordinária de buscavs. estrutura de dados em memória secundária 297fila de prioridade 536–537, 548. V. também fila de priorida-

de; V. também heap binárioheap binário 537–548, 605–610, 659–662, 662–673. V.

também heap bináriolista com saltos 166–181lista simplesmente encadeada 603–604, 632–633. V. tam-

bém tabela de busca encadeadatabela de destruição 275–277tabela de dispersão com encadeamento 371–376. V. tam-

bém dispersão com encadeamentotabela de dispersão com endereçamento aberto 376–386. V.

também dispersão com endereçamento aberto

Page 12: Índice Remissivoulysseso.com/livros/ed2/Indice.pdfÍndice Remissivo — A | 793 arquivo 64, 94 abertura de 96–100 acesso direto a 106, 111–115 atualização de registro de 121–124

802 | Índice Remissivo — F

estrutura de dados em memória principal (continuação)tabela de dispersão cuco 388–399. V. também dispersão cucotabela indexada ordenada 156–166, 181–184. V. também ta-

bela de busca indexadatabela indexada sem ordenação 145–152, 184–188. V. tam-

bém tabela de busca indexadatabela simplesmente encadeada 152–156. V. também tabela

de busca encadeadatrie 486–500, 504–510. V. também trie

estrutura de dados em memória secundária 295–298árvore B 309–331. V. também árvore Bárvore B* 345–346árvore B+ 331–345, 350–352, 674–683. V. também árvore

B+árvore multidirecional descendente de busca 288–295,

298–309, 347–348. V. também árvore multidirecional descendente de busca

bloco de 296encadeada 297vs. estrutura de dados em memória principal 297modelo para análise de 297–298página de 296tabela de dispersão estática 420–427. V. também dispersão

estática em memória secundáriatabela de dispersão extensível 427–446, 447. V. também dis-

persão extensível em memória secundáriaestrutura (variável), preenchimento de 298–300EsvaziaPilha(), função 328evento de simulação discreta 549exceção 116. V. também tratamento de exceçãoEXCEDENTE, constante de enumeração 422exemplo de programação

altura de árvore B 349–350atualizando de registro de arquivo de texto 121–124bandeira holandesa, problema da 634–635busca com chave secundária 184–188busca de Fibonacci 181–188busca de intervalo 188busca de intervalo em árvore B+ 350–352busca de piso de chave 187–188caminhamento em árvore multidirecional de busca 347casamento de strings em fluxo contínuo 523–525casamento léxico 519–522chaves duplicadas 636checando árvore binária de busca 253–255codificação de Huffman 551–566coletores excedentes em tabela de dispersão estática 446–447conferindo balanceamento AVL 255–256conversão de arquivo de texto em binário 124–125cópia de arquivo 120–121distância de edição 517–519exibição ordenada de chaves de árvore binária de busca

252–253filtro de Bloom 404–408HeapBurger, lanchonete 566–572Huffman, codificação de 551–566indexação de palavras do romance Ressurreição 504–510

lanchonete HeapBurger 566–572lista bitônica 636–637lista simplesmente encadeada, ordenação de 632–633Machado de Assis 504–510maior prefixo comum (MPC) a um conjunto de strings

510–513maior profundidade local em tabela de dispersão extensível

447maior subsequência comum (MSC) a dois strings 513–517medindo tempo de execução 86menor e maior chaves de árvore binária de busca 251–252menor e maior chaves de árvore multidirecional de busca

347–348MPC (maior prefixo comum) 510–513MSC (maior subsequência comum) 513–517número de chaves de árvore B 349número de nós de árvore B 348–349ordenação de arquivos por indexação 684–687ordenação de lista simplesmente encadeada 632–633ordenação de ponteiros 633–634ordenação em memória secundária, teste de 687saltando linhas de um arquivo de texto 118–120separando um string em partes (tokens) 502–504testando função de dispersão pronta 400–404teste de ordenação em memória secundária 687

ExibeConteudoNoArvoreBB(), função 253ExibeEncontrados(), função 186ExibeMSC(), função 516ExibeRegistrosOrdenados(), função 686ExibeResultadoDeTeste(), função 629extração de bit 703–705

F

fase de coleta/distribuição de Bucketsort 615fase de pré-processamento de string 485fase de processamento de string 485FASTA, formato de arquivo 697fator de carga 362, 386

em dispersão com encadeamento 371em dispersão com endereçamento aberto 376

fB, algoritmo 456. V. também força bruta, algoritmo de casa-mento de strings por

fclose(), função de biblioteca 99, 117FechaArquivo(), função 99, 117, 558, 658fechamento de arquivo 99–100feof(), função de biblioteca 100–101, 111ferror(), função de biblioteca 100–101, 111, 117fflush(), função de biblioteca 101–102, 114, 117fgetc(), função de biblioteca 107, 111, 116fgets(), função de biblioteca 107, 108, 111, 115fila de prioridade 536–537

análise de 548aplicações de 536ascendente 536comparação de implementações de 548descendente 536

Page 13: Índice Remissivoulysseso.com/livros/ed2/Indice.pdfÍndice Remissivo — A | 793 arquivo 64, 94 abertura de 96–100 acesso direto a 106, 111–115 atualização de registro de 121–124

Índice Remissivo — G | 803

fila de prioridade (continuação)enfileiramento/desenfileiramento em 536implementação com árvore binária de busca balanceada 537implementação com heap binário. V. heap binárioimplementação com lista encadeada 537implementação com lista indexada 537inserção em 536remoção em 536

FILENAME_MAX, constante de biblioteca 97FILE, tipo de biblioteca 95FILHO_D, macro 544FILHO_E, macro 544filhos esquerdo e direito de chave 288filtro de Bloom 404–408

consulta de pertinência em 404falso-negativo em 404falso-positivo em 404

final de arquivo 95, 100–101firmware 57fita magnética 67F, macro 343FNV, função de dispersão 715folha

de árvore multidirecional 289inserção em 292–294, 309–311

FOLHA, constante de enumeração 343fopen(), função de biblioteca 69, 95, 96–97, 99, 117força bruta, algoritmo de casamento de strings por 455–456

análise de 457–458implementação de 456–457

formato de arquivo 94binário 94CSV 503, 696FASTA 697de texto 94

Fowler, Noll e Vo, função de dispersão de 715fprintf(), função de biblioteca 103, 107fputc(), função de biblioteca 107, 120fputs(), função de biblioteca 107, 109, 115fragmentação e bloco de disco magnético 65fread(), função de biblioteca 107, 109–111, 115, 296, 300FREE, macro 497fscanf(), função de biblioteca 103, 104, 107fseek(), função de biblioteca 101, 107, 111–115fsetpos(), função de biblioteca 117ftell(), função de biblioteca 107, 112–115, 117função. Procure uma função específica pelo nome dela 

denominação de 719–720de dispersão 360. V. também função de dispersão; V. tam-

bém função de dispersão prontagenérica 546nome de 719de posicionamento em arquivo 111–115de sondagem 377

função de dispersão 360, 363–370anatomia de 368–369avalanche de 364

bem elaborada 368–370para chave composta 365para chave inteira 365para chave real 365combinação/confusão de 369determinismo de 364eficiência de 364independência de 364método de cálculo de 366–368. V. também método de cálcu-

lo de dispersãomodular 365primária 377pronta 713–717. V. também função de dispersão prontapropriedades desejáveis de 363–364recomendações práticas para criação de 370rolante 480secundária 377simplicidade de 364de sondagem 377para string 365tabular 366teste de 370, 400–404uniformidade de 364

função de dispersão pronta 713–717avaliação de 716–717DJB 714DJB2 714FNV 715JOAAT 713–714JSW 715–716SAX 715

fwrite(), função de biblioteca 107, 109–111, 111, 115, 296

G

GCC, compilador 118genoma humano 697G, macro 300, 343

H

H_ABERTURA, constante 567hashing 360. V. também dispersãoHD. V. disco magnéticoheap. V. heap binárioheap binário 537–539

acréscimo de prioridade em 543análise de 547–548ascendente 537consulta em 543criação de 542–543decréscimo de prioridade em 543descendente 537filho de nó de 539implementação de 544–547inserção em 539–541de máximo/mínimo 537

Page 14: Índice Remissivoulysseso.com/livros/ed2/Indice.pdfÍndice Remissivo — A | 793 arquivo 64, 94 abertura de 96–100 acesso direto a 106, 111–115 atualização de registro de 121–124

804 | Índice Remissivo — I

heap binário (continuação)numeração de nós de 538–539ordenação usando 605–610. V. também HeApsort, algoritmopai de nó de 538percolação ascendente em 540percolação descendente em 541propriedade de ordenação de 537propriedade estrutural de 537remoção de elemento específico em 543–544remoção em 541–543

HeapBurger, lanchonete 566–572HeapCheio(), função 545HeApsort, algoritmo 605–610

análise de 609–610implementação de 608–609

HeapSort(), função 608HeapVazio(), função 547HeapVazioHuff(), função 558heurística 75

de bom sufixo 464de caching 75localidade de referência e 77de mau caractere 464de movimentação para início 152de transposição 152

HG-19 (genoma) 697hierarquia de memória 71–73Horner, método de 366Horspool, algoritmo de casamento (ou simplificação) de

472–474vs. algoritmo Bm (diferença) 473análise de 476–477implementação de 475–476melhor caso de 477pior caso de 477tabela de saltos de 473

Huffman, codificação de 551–566. V. também codificação de Huffman

I

identificadornotação para escrita de 719–720

implementaçãode afunilamento de nó 244–246de árvore afunilada 244–249de árvore AVL 228–232de árvore B 319–328de árvore B+ 343–344de árvore binária ordinária de busca 203–212de árvore multidirecional descendente de busca em memória

principal 294–295de árvore multidirecional descendente de busca em memória

secundária 298–309de BuBBlesort 585de Bucketsort 616–617de busca binária 160

de busca por interpolação 162de busca sequencial com movimentação para início 154–155de busca sequencial com transposição 153–154de countingsort 612–613de Boyer e Moore, algoritmo de casamento de 468–472de força bruta, algoritmo de casamento de strings por

456–457de HeApsort 608–609de Horspool, algoritmo de casamento (ou simplificação) de

475–476de redimensionamento de dispersão 387–388de dispersão com encadeamento 372–375de dispersão com endereçamento aberto 382–384de dispersão cuco 394–398de dispersão estática em memória secundária 422–427de dispersão extensível em memória secundária 437–445de heap binário 544–547de inserção massiva em árvores B+ 679–683de insertionsort 589–590de intercalação binária de arquivos 651–652de intercalação multíplice de arquivos 668–671de intercalação multíplice de arrays 660–662Karp e Rabin, do algoritmo de casamento de 482–484Knuth, Morris e Pratt, do algoritmo de casamento de

461–463de lista bitônica 636–637de lista com saltos 170–178de mergesort 601–603de ordenação de lista simplesmente encadeada 632–633de ordenação de ponteiros 633–634de Quicksort 595–596de rADixsort 619–621de rotação em árvore binária de busca 215de selectionsort 587de tabela de busca encadeada 153–155de tabela de busca indexada 145–151, 158de tabela de maiores bordas 461de trie 492–497

IncrementaBits(), função 562indexação

em arquivo 111, 118de byte em arquivo 112, 118de linha em arquivo 115de registro em arquivo 111, 118

INDICE_CARACTERE, macro 493índice de byte/registro em arquivo 118indução (matemática) 163, 179, 197, 622IniciaArvoreBB(), função 204iniciação. V. também criação

de árvore binária ordinária de busca 204de coletor de tabela de dispersão com endereçamento aberto

376de filtro de Bloom 405de heap binário 544, 660de lista com saltos 171–172de lista encadeada 373, 505de nó de trie 494

Page 15: Índice Remissivoulysseso.com/livros/ed2/Indice.pdfÍndice Remissivo — A | 793 arquivo 64, 94 abertura de 96–100 acesso direto a 106, 111–115 atualização de registro de 121–124

Índice Remissivo — I | 805

iniciação (continuação)de tabela de busca com dispersão estática 424de tabela de dispersão com encadeamento 373de tabela de dispersão com endereçamento aberto 382de tabela de dispersão cuco 394de tabela de dispersão extensível 434, 437de trie 493de valor de dispersão 370

IniciaHeap(), função 544IniciaHeapIM_Arr(), função 660IniciaListaComSalto(), função 175IniciaListaComSaltos(), função 171IniciaListaSE(), função 373, 505IniciaNoMultiMS(), função 304, 320, 325IniciaTabDEst(), função 424IniciaTabelaDExt(), função 437IniciaTrie(), função 493inserção

em árvore afunilada 242–243em árvore AVL 218–225em árvore B 309–313em árvore B+ 332–336em árvore binária ordinária de busca 198–200em árvore multidirecional descendente de busca 292–293,

303–306em dispersão com encadeamento 372em dispersão com endereçamento aberto 381em dispersão cuco 392–393em dispersão estática em memória secundária 420–421em dispersão extensível em memória secundária 428–431em heap binário 539–543em lista com saltos 168–169massiva. V. inserção massiva em árvores B+ordenada em tabela de busca indexada 158de registro de arquivo 115em tabela de busca encadeada 155em tabela de busca indexada 148–149em trie 490–492

inserção massiva em árvores B+ 650, 674, 676–679algoritmos de 675–676análise de 683desvantagem de 683implementação de 679–683

InsereAcimaBM(), função 681insereAcimAemÁrvoreB+, algoritmo 675InsereArvoreBB(), função 204InsereArvoreFunil(), função 247InsereAVL(), função 229InsereB(), função 324InsereColetorVazioDExt(), função 443InsereCuco(), função 395InsereDEA(), função 383InsereDE(), função 374InsereDEst(), função 425InsereDExt(), função 439insereemÁrvoreAfunilADA, algoritmo 242insereemÁrvoreAvl, algoritmo 224

insereemÁrvoreB, algoritmo 312insereemÁrvoreB+, algoritmo 334insereemÁrvoreBinÁriADeBuscA, algoritmo 198insereemÁrvoremultiDirecionAlDescenDente, algoritmo

292insereemDiretórioDeDispersãoextensível, algoritmo 431InsereEmDiretorioDExt(), função 442insereemDispersãocomencADeAmento, algoritmo 372insereemDispersãocomenDereçAmentoABerto, algoritmo

381insereemDispersãocuco, algoritmo 392InsereEmFolhaMultiMS(), função 306, 310, 321insereemHeApAscenDente, algoritmo 540InsereEmHeap(), função 545, 570InsereEmHeapHuff(), função 558insereemlistAcomsAltos, algoritmo 168, 169InsereEmNoB(), função 321InsereEmOrdem(), função 165insereemtABelADeDispersãoestÁticA, algoritmo 421insereemtABelADeDispersãoextensível, algoritmo 431insereemtrie, algoritmo 490InsereEmTrie(), função 494InsereLinhaEmTrieMachado(), função 509InsereListaComSaltos(), função 173InsereListaSE(), função 275, 374InsereMultiMS(), função 303InsereTrieMachado(), função 506insertionsort, algoritmo 589

análise de 590–591implementação de 589–590

InsertionSort(), função 589Intercala2Tabelas(), função 601IntercalaBinMS(), função 654intercalação

de arquivos. V. intercalação binária de arquivos; V. tam-bém intercalação de arquivos; V. também intercalação multíplice de arquivos

de arrays 599–605, 659. V. também intercalação multíplice de arrays; V. também mergesort, algoritmo

de listas encadeadas 603–604, 632–633intercAlAçãoBinÁriA, algoritmo 651intercalação binária de arquivos 651–652

análise de 659custo de transferência de 659implementação de 652–659

intercalação de arquivosanálise de 672–673binária 651–659. V. também intercalação binária de arquivosbuffer de entrada em 652buffer de entrada vazio em 666buffer de saída em 652buffer repleto em 666descarga de buffer de saída de 666fases de 650implementação de 652–659, 668–671multíplice 662–673. V. também intercalação multíplice de

arquivos

Page 16: Índice Remissivoulysseso.com/livros/ed2/Indice.pdfÍndice Remissivo — A | 793 arquivo 64, 94 abertura de 96–100 acesso direto a 106, 111–115 atualização de registro de 121–124

806 | Índice Remissivo — J

tabela de prefixo de 458kr, algoritmo 482, 519–522. V. também Karp e Rabin, algorit-

mo de casamento de

L

lanchonete HeapBurger 566–572lapso de cache 74LeCabecalhoHuff(), função 563LeColetorDEst(), função 423, 439LeColetorDExt(), função 439leitura antecipada de bloco de disco magnético 65leitura de dados em arquivo

com acesso direto 111–115com acesso sequencial 107–111binário com acesso direto 107–115formatada 103de texto 107–111

leiturAseQuenciAlDeArQuivo, algoritmo 110LeLinhaIlimitada(), função 509lema

3.1 (piso de logaritmo) 1623.2 (piso de logaritmo de n – 1) 1623.3 (tamanho de tabela em busca binária) 1635.1 (custos real e amortizado de sequência de operações) 2735.2 (relação entre logaritmos) 2829.1 (número de janelas em texto) 4579.2 (custo temporal de construção de tabela de maiores

bordas) 4639.3 (custo temporal de pré-processamento do algoritmo kr)

48411.1 (número de comparações de chaves no algoritmo

selectionsort) 58811.2 (número máximo de comparações de chaves no algorit-

mo insertionsort) 59011.3 (caso médio de comparações e atribuições no algoritmo

insertionsort) 59011.4 (número máximo de comparações de chaves no algorit-

mo IntercalaTabelas) 60411.5 (relação satisfeita pelo custo temporal do algoritmo

mergesort) 60411.6 (convergência de série de potências) 60911.7 (número máximo de folhas de árvore binária) 62211.8 (altura mínima de árvore binária) 623

LeNo(), função 301LeNome(), função 186LeNoMultiMS(), função 297, 301, 320LeRaizB(), função 328Levenshtein, distância de 518liberação de memória dinâmica 99. V. também destruiçãoLigaBit(), função 705ligação de bit 705–706limite inferior de algoritmo

de ordenação baseado em comparação 621–624de ordenação externa 673–674

<limits.h>, cabeçalho de biblioteca 560, 707linha de arquivo de texto, salto de 118–120

intercalação de arquivos (continuação)passagem de 650série de 650

intercalação multíplice de arquivos 662–690análise de 672–690custo de transferência de 672–690exemplo de 664–668implementação de 668–690

intercAlAçãomultípliceDeArQuivos, algoritmo 663intercalação multíplice de arrays 659

algoritmo de 660análise de 662implementação de 660–662

intercAlAçãomultípliceDeArrAys, algoritmo 660IntercalaDuasSeriesMS(), função 655IntercalaMultiArq(), função 669IntercalaNArrays(), função 661intercAlAtABelAs, algoritmo 600INTERNO, constante de enumeração 343interrupção, sinal de 69INTERVALO_CHEGADA, constante 567IntervaloExponencial(), função 569inversão de bit 706inversão, estado de ordenação de 583InverteBit(), função 706InverteTabela(), função 628ItemEstaEmFiltro(), função 408

J

JOAAT, função de dispersão 369, 713–714JSW, função de dispersão 366, 715–716Julienne Walker, função de dispersão de 715–716junção de nós

de árvore B 314–319de árvore B+ 336–342

JuntaNosB(), função 328JuntAnósDeÁrvoreB, algoritmo 314

K

Karp e Rabin, algoritmo de casamento de 477–482análise de 484–485casamento falso em 477, 479digital de Rabin usada com 478função de dispersão rolante usado com 480implementação de 482–484método de Horner em 479ocorrência de overflow em 479

kmp, algoritmo 460. V. também Knuth, Morris e Pratt, algorit-mo de casamento de

Knuth, Morris e Pratt, algoritmo de casamento de 458–461, 519–522

análise de 463–464função de falha de 458implementação de 461–463tabela de maiores bordas de 458–459

Page 17: Índice Remissivoulysseso.com/livros/ed2/Indice.pdfÍndice Remissivo — A | 793 arquivo 64, 94 abertura de 96–100 acesso direto a 106, 111–115 atualização de registro de 121–124

Índice Remissivo — M | 807

linha de cache 74LinhaEmRegistro(), função 124, 125lista

bitônica 636–637encadeada 166, 603–604, 632–633. V. também lista com

saltos; V. também tabela de busca encadeada; V. tam-bém dispersão com encadeamento

indexada. V. tabela de busca indexadacom saltos 166–181. V. também lista com saltos

lista com saltos 166–167análise de 178–180avaliação experimental de 180–181busca de 167–168implementação de 170–178inserção em 168–169nível de 166número de níveis vs. nível de 170perfeita 167quase perfeita 167real 167remoção em 169–170

lista encadeada 107. V. também lista com saltos; V. também tabe-la de busca encadeada

circular com cabeça 170simples 153

localidade de referênciade acesso a instrução 81blocagem e 81–83espacial 77–81padrão de referência sequencial e 77princípio de Pareto em 77de programa 84recomendação sobre 84uso de registrador e 83–84regra 80/20 e 77temporal 77–81

long int, tipo 117largura do 117

long long int, tipo 118, 479LSB (bit menos significativo) 703L_tmpnam, constante de biblioteca 105

M

Machado de Assis 504, 697Machado.txt, arquivo de dados 697macro. Procure uma macro específica pelo nome dela maior chave

de árvore B 347–348de árvore binária de busca 251–252de árvore multidirecional de busca 347–348

MaiorChaveArvoreBB(), função 251MaiorChaveB(), função 348maior prefixo comum (MPC) a um conjunto de strings

510–513MaiorPrimo(), função 483, 522

maior (símbolo) deslocamento à direita, usado em operador de 701

maior subsequência comum (MSC) a dois strings 513–517MAIOR_VALOR, macro 256MARGEM, constante 567máscara de bits 702mascaramento, operação de 701–703mau caractere 465MAX_BITS, constante 560MAX_BYTES, constante 560MAX_NOME, constante 122MAX_PESSOAS_GRUPO, constante 567MAX_REGISTROS, constante 653MAX_SAND, constante 567M, constante 422Mean Time To Failure (MTTF) 64mediana 594medida de tempo de execução 86MedidaDeTempo(), função 86, 402meio de armazenamento 56–67. V. também memória

disco magnético 58–65. V. também disco magnéticofita magnética 67. V. também fita magnéticapen drive 66SSD 65–66

meio de entrada/saída 102memória

acesso direto a 69bastão de 66bloco de 106cache 57, 73–76cache fria 78caching e 73–76contiguidade em 109dispositivo periférico e 110DRAM 56–57EEPROM 57EPROM 57flash 65interna 72módulo/pente de 56não volátil 57principal 57, 67, 72PROM 57RAM 56–57SRAM 56–57virtual 82volátil 57

memória interna vs. memória principal 140menor chave

de árvore B 347–348de árvore binária de busca 251–252de árvore multidirecional de busca 347–348

MenorChaveArvoreBB(), função 249, 251MenorChaveMultiMS(), função 308, 347MenorDe3(), função 518MenorNoArvoreBB(), função 249

Page 18: Índice Remissivoulysseso.com/livros/ed2/Indice.pdfÍndice Remissivo — A | 793 arquivo 64, 94 abertura de 96–100 acesso direto a 106, 111–115 atualização de registro de 121–124

808 | Índice Remissivo — N

menor (símbolo) deslocamento à esquerda, usado em operador de 701

mergesort, algoritmo 599–601, 634análise de 604–605implementação de 601–603ordenação de lista encadeada com 603–604

MergeSortAux(), função 602mergesortDelistAencADeADA, algoritmo 604MergeSort(), função 603método contábil 272–273, 276, 279–280. V. também análise

amortizadamétodo de agregado 272, 275–276, 278–279. V. também análi-

se amortizadamétodo de cálculo de dispersão

aditivo 366de disjunção exclusiva 367–368de divisão modular 366–367por mistura 368, 708–712de multiplicação 367passo de combinação de 369passo de confusão de 369polinomial 366de resto de divisão 366–367rotativo 368tabular 366xor 367–368

método de dispersão 360. V. também método de cálculo de dispersão

método de Horner 479método de ordenação da bolha. V. BuBBlesort, algoritmométodo de potencial 273–274, 276–277, 280, 281–285. V.

também análise amortizadamod 361, 481moda 583modelo de memória externa padrão 297modf(), função de biblioteca 365, 367modo de abertura de arquivo"a" 98"a+" 98, 115"a+b" 98, 115"ab" 98"a+t" 98, 115"at" 98para atualização 98"r" 98"r+" 98, 115"r+b" 98, 115"rb" 98"r+t" 98, 115"rt" 98"w" 98"w+" 98, 115"w+b" 98, 115"wb" 98, 121"w+t" 98, 115"wt" 98

módulo de biblioteca stdio 94, 117

moeda virtual 272MoveApontador(), função 113, 302, 438, 658MPC(), função 511MSB (bit mais significativo) 704–705MSBits(), função 616Murphy, lei de 116, 300

N

NAleatorio(), função 570N_BITS_SIG, constante 616N_CADEIRAS, constante 567N_COLETORES, constante 616NColetoresExcedentesDEst(), função 446níveis de hierarquia de memória 72nó

alvo 234antecessor de 203, 243de árvore afunilada 243, 244de árvore AVL 228de árvore B 299, 309de árvore B+ 331, 343de árvore binária ordinária de busca 204de árvore multidirecional descendente de busca 289, 294,

298completo 289dimensionamento de 299–300, 343divisão de 310–313, 334–336escrita de 302filho de 197, 201, 210, 213–216, 539final 487folha 289, 331, 488grau de 299incompleto 289junção de 314–319, 336–342leitura de 301de lista com saltos 166, 170de lista simplesmente encadeada 153pai de 213–214, 538pivô de rotação 213posto de 281raiz de rotação 213rotação de 213–216semifolha 289sucessor de 210, 243de tabela de destruição 275tamanho de 281de trie 487–492visitação de 197, 214, 252–253

nomede constante de enumeração 719de constante simbólica 719de função 719de macro 719de rótulo de estrutura 719de tipo definido pelo programador 719

NoNovo(), função 255

Page 19: Índice Remissivoulysseso.com/livros/ed2/Indice.pdfÍndice Remissivo — A | 793 arquivo 64, 94 abertura de 96–100 acesso direto a 106, 111–115 atualização de registro de 121–124

Índice Remissivo — O | 809

notaçãoadotada neste livro 719análise de algoritmo em memória secundária, usada em 298camelo 719de identificador 719–720

NO_VAZIO, constante de enumeração 343NovoColetorDEst(), função 423NovoColetorDExt(), função 438NovoNoDeTrie(), função 494, 505NovoNoTrieMachado(), função 505NumeroDeChavesB(), função 349NumeroDeChavesTrieMachado(), função 508NumeroDeFilhosDeNoDeTrie(), função 512NumeroDeNosB(), função 348NumeroDeRegistros(), função 304

O

ObtemApontador(), função 113, 438, 658ObtemBitsDeChave(), função 439ObtemCodigosCanonicosHuff(), função 562oBtémcóDigosDeHuffmAn, algoritmo 553ObtemElementoIdx(), função 147, 160ObtemLSBs(), função 704ObtemMinimoHeap(), função 546ObtemMinimoIM_Arr(), função 661ObtemMSBs(), função 705ObtemTamanhosHuff(), função 561ObtemTokens(), função 503OCUPADO, constante de enumeração 382, 394one-at-a-time, função de dispersão 713–714operação de entrada/saída 69–71

de entrada 69de saída 69sequência de eventos em 69

operador de bits 700ordenação 580. V. também ordenação em memória principal; V.

também ordenação em memória secundáriaadaptativa 582aplicações de 583–584da bolha. V. BuBBlesort, algoritmochave de 580por comparação 582por distribuição 582com espaço adicional 581estado de 583estável 580, 581externa 581, 650. V. também ordenação em memória secun-

dáriain loco 581por inserção. V. insertionsort, algoritmoinstável 581interna 581. V. também ordenação em memória principalinversão em 583limite para algoritmo baseado em comparação de 621–624de lista encadeada 603–604de lista simplesmente encadeada 632–633

em memória principal. V. ordenação em memória principalem memória secundária. V. ordenação em memória secundá-

riamétodo de 582–583offline/online 582de ponteiros 633–634de propósito específico 582de propósito geral 582por seleção. V. selectionsort, algoritmo

ordenação em memória principalaplicações de 583–584por base. V. rADixsort, algoritmopor borbulhamento. V. BuBBlesort, algoritmocom coletor. V. Bucketsort, algoritmopor contagem. V. countingsort, algoritmocom custo temporal linear 610–621com custo temporal linear logarítmico 592–610com custo temporal quadrático 584–591com heap. V. HeApsort, algoritmopor inserção. V. insertionsort, algoritmopor intercalação. V. mergesort, algoritmousando Quicksort. V. Quicksort, algoritmopor seleção direta. V. selectionsort, algoritmo

ordenação em memória secundáriapor indexação 684–687por intercalação binária 651–659por intercalação multíplice 662–673limite inferior para 673–674tamanho de buffer em 672teste de 687

OrdenaHeap(), função 546, 609, 661OrdenaHeapIM_Arr(), função 661OrdenaListaSE(), função 632OrdenaPonteiros(), função 634OrdenaTabelaIdx(), função 157organização de arquivo e bloco de disco magnético 65organizador prévio liotimização dinâmica 514

P

padrão de acesso sequencial/direto 64–65padrão de referência sequencial 77padrão (string) 452página 81, 296. V. também bloco: de disco magnéticoPAI, macro 544par chave/valor 140Pareto, princípio de 77pArtiçãoDeQuicksort, algoritmo 592PEDIDO, constante de enumeração 567pen drive 66percolação de heap

ascendente 540descendente 541

PERIODO, constante 567permutação 622perror(), função de biblioteca 102

Page 20: Índice Remissivoulysseso.com/livros/ed2/Indice.pdfÍndice Remissivo — A | 793 arquivo 64, 94 abertura de 96–100 acesso direto a 106, 111–115 atualização de registro de 121–124

810 | Índice Remissivo — Q

Q

qsort(), função de biblioteca 157, 561, 626, 628, 652, 686quebra de linha 94

em arquivo de texto 94remoção em string de 108

Quick1(), função 595Quick2(), função 596Quick3(), função 596QuickSort1(), função 596Quicksort, algoritmo 592–595

análise de 596–599implementação de 595–596mediana de três em 594, 596partição de 592pivô aleatório de 596pivô de 592ponto de corte de 594, 596

R

"r+b", modo de abertura de arquivo 98, 115"r", modo de abertura de arquivo 98"r+", modo de abertura de arquivo 98, 115rADixsort, algoritmo 617–619

análise de 621base em 618implementação de 619–621representação posicional em 617

RadixSort(), função 620RAM 56–57. V. também memóriarand(), função de biblioteca 175, 364, 569RAND_MAX, constante de biblioteca 569"rb", modo de abertura de arquivo 98realloc(), função de biblioteca 277, 388rebalanceamento de árvore binária de busca. V. desbalanceamen-

to de árvore binária de buscarebatismo de arquivo 105recomendação sobre

arquivo aberto para atualização 114constante simbólica, uso de 719EOF, uso de 101estilo de programação 719–720fechamento de arquivo 100feof(), uso de 100, 101ferror(), uso de 101função de processamento de arquivo, uso de 117identificador, escrita de 719leitura além de final de arquivo, teste de 100, 101processamento de arquivo 96, 101rewind(), uso de 116

ReconstroiArvoreHuff(), função 564recorrência. V. relação de recorrênciarecuperação de informação 141RedimensionaCuco(), função 397RedimensionaHeap(), função 545

persistência de dados 328PilhaVazia(), função 328piso de chave 142, 187PodeDividirColetorDExt(), função 442política de substituição de cache

aleatória 75FIFO 75MRU 76

ponte de entrada e saída 67ponto bitônico 636PontoBitonico(), função 636portabilidade

de arquivo 117–118de fseek(), função de biblioteca 113do tipo long int 117

POSICAO_NULA, constante 299posicionamento em arquivo 111–115potencial, método de análise amortizada de 271, 273–274,

276–277, 280, 281–285. V. também análise amortizadaPRECO, constante 567preenchimento de estrutura 298–300pré-processamento de padrão 458–459, 464–466, 473–474,

484PRIMARIO, constante de enumeração 422PRIMEIRO_DIGITO_RADIX, constante 619PRIMO, constante 483, 522princípio

de localidade 77de Pareto 77

problema de seleção 583ProcessaChegada(), função 571processamento de arquivo 94

por acesso direto 106, 111–115por acesso sequencial 106, 107–115por bloco 106, 109–111por byte 106, 107–111por caractere 106, 107–111formatado 106com leitura sequencial 110–111por linha 106, 108–109

ProcessaPedido(), função 571ProcessaSaida(), função 572ProfLocalMaxDExt(), função 447profundidade. V. também altura

de árvore AVL 232de árvore B 349–350de diretório de dispersão extensível 428global de dispersão extensível 428local de dispersão extensível 428

programa-cliente 143–194dirigido por entrada e saída 76dirigido por processamento 76

programação dinâmica 514PROM 57. V. também memória

Page 21: Índice Remissivoulysseso.com/livros/ed2/Indice.pdfÍndice Remissivo — A | 793 arquivo 64, 94 abertura de 96–100 acesso direto a 106, 111–115 atualização de registro de 121–124

Índice Remissivo — R | 811

redimensionamento de dispersão 386–388análise de 388fator de carga em 386implementação de 387–388

RedimensionaTabDEA(), função 387reDimensionAtABelAcuco, algoritmo 393redução de alfabeto 499ReduzHeapIM_Arr(), função 661register, palavra-chave 83registrador, uso de 83–84registro 580

de arquivo. V. registro de arquivode ativação 598conceito de 140preenchimento de estrutura e 298–300

registro de arquivo 111alteração de 115atualização de 121–124conversão de texto para binário de 124–125índice de 118inserção/remoção de 115preenchimento de estrutura e 298–300tamanho fixo, de 115

regra 80/20 77relação de recorrência

de árvore AVL 232de busca binária 163–164de distância de edição 519de lista com salto 179de mergesort 604de ordenação em memória secundária 673de Quicksort 596–597

remoçãode arquivo 99–100, 105em árvore afunilada 243–244em árvore AVL 225–228em árvore B 313–319em árvore B+ 336–342em árvore binária ordinária de busca 201–203em árvore multidirecional descendente de busca 293–294,

306–309em dispersão com encadeamento 372em dispersão com endereçamento aberto 381em dispersão cuco 393–394em dispersão estática em memória secundária 422em dispersão extensível em memória secundária 432–433em heap binário 541–543de indicação de erro em arquivo 101em lista com saltos 169–170de quebra de linha em string 108–109de registro de arquivo 115em tabela de busca indexada 149–150em trie 490–492

RemoveArvoreBB(), função 207RemoveAVL(), função 230RemoveChaveB(), função 326RemoveChaveMultiMS(), função 306

RemoveCuco(), função 398RemoveDEA(), função 384RemoveDE(), função 375RemoveDEst(), função 426RemoveDExt(), função 444removeemÁrvoreAfunilADA, algoritmo 243removeemÁrvoreAvl, algoritmo 228removeemÁrvoreB, algoritmo 313removeemÁrvoreB+, algoritmo 339removeemÁrvoreBinÁriADeBuscA, algoritmo 203removeemÁrvoremultiDirecionAlDescenDente, algoritmo

293removeemDispersãocomencADeAmento, algoritmo 372removeemDispersãocomenDereçAmentoABerto, algoritmo

381removeemDispersãocuco, algoritmo 393RemoveEmFolhaB(), função 328removeemfolHADeÁrvoreB, algoritmo 314removeemHeApAscenDente, algoritmo 542removeemlistAcomsAltos, algoritmo 169removeemtABelADeDispersãoestÁticA, algoritmo 422removeemtABelADeDispersãoextensível, algoritmo 433removeemtrie, algoritmo 492RemoveEmTrieAux(), função 496, 507RemoveEmTrie(), função 496, 507remove(), função de biblioteca 105RemoveListaComSaltos(), função 177RemoveListaSE(), função 375RemoveMinHeap(), função 545, 570RemoveMinHeapHuff(), função 558RemoveNoArvoreFunil(), função 247REMOVIDO, constante de enumeração 382rename(), função de biblioteca 105representação binária de valor do tipo int 707RepresentacaoBinaria(), função 707representação posicional 617resolução de colisão 362

em dispersão com encadeamento 371em dispersão com endereçamento aberto 377–380em dispersão cuco 389sondagem e 377–380em tabela de dispersão estática 420–422em tabela de dispersão extensível 427–431

Ressurreição (romance) 697resto de divisão 366–367ResultadoBuscaEmTrie(), função 513rewind(), função de biblioteca 101, 106, 112, 116, 117RK. V. Karp e Rabin, algoritmo de casamento derobustez 116–117RotacaoDireitaArvoreBB(), função 215rotação em árvore binária de busca 213–216

direita 213esquerda 214pivô de 213preservação de ordem em 214raiz de 213zag 235

Page 22: Índice Remissivoulysseso.com/livros/ed2/Indice.pdfÍndice Remissivo — A | 793 arquivo 64, 94 abertura de 96–100 acesso direto a 106, 111–115 atualização de registro de 121–124

812 | Índice Remissivo — S

rotação em árvore binária de busca (continuação)zag-zag 235–236zag-zig 236–237zig 235zig-zag 236–237zig-zig 235–236

RotacaoEsquerdaArvoreBB(), função 216rotNoABB, rótulo de estrutura 204rotNoArvoreHuff, rótulo de estrutura 555rotNoAVL, rótulo de estrutura 229rotNoListaBloom, rótulo de estrutura 406rotNoLSE, rótulo de estrutura 153, 275, 373, 616, 619rotNoLS, rótulo de estrutura 170rotNoMulti, rótulo de estrutura 294rotNoTrieMachado, rótulo de estrutura 505rotNoTrie, rótulo de estrutura 493rotTabelaIdx, rótulo de estrutura 145, 146rótulo de estrutura. Procure um rótulo de estrutura específico pelo

nome dele "rt", modo de abertura de arquivo 98"r+t", modo de abertura de arquivo 98

S

saídadispositivo de 68formatada 102–103. V. também escrita formatadameio de 102

SAIDA, constante de enumeração 567SaltaLinhas(), função 119salto de linha de arquivo de texto 118–120SATA 69SAX, função de dispersão 715scanf(), função 104SCSI 69SEEK_CUR, constante de biblioteca 112SEEK_END, constante de biblioteca 112, 113SEEK_SET, constante de biblioteca 112, 113seek time 61selectionsort, algoritmo 586–587

análise de 588implementação de 587

SelectionSort(), função 587semifolha 289separação de string em partes (tokens) 502–504SeparaEm3Particoes(), função 635SeriesEstaoVaziasMS(), função 671setor de disco magnético

acesso a 61área de dados de 59cabeçalho de 59código de correção de erro de 59ECC de 59espaçador de 59extrato de 59identificação de 59informação sobre sincronização de 59

intervalo de 59setor geométrico vs. 60trailer de 59

shift-add-xor (SAX), função de dispersão 715–717simulação de evento discreto 566–572simulação discreta dirigida por eventos 548–551

distribuição exponencial em 550evento de 548, 549fila de prioridade em 548laço principal de 550lanchonete HeapBurger (exemplo) 566–572simulação contínua vs. 549

sinal de interrupção 69site deste livro: www.ulysseso.com/ed2 liSomaArrayBi1(), função 79SomaArrayBi2(), função 80SomaArray(), função 77, 81sondagem em tabela de dispersão 376. V. também dispersão com

endereçamento abertoagrupamento primário em 378com dispersão dupla 362, 379–380função de 377função de dispersão primária em 377função de dispersão secundária em 377índice de 376linear 362, 377–378passo de 376quadrática 362, 378–379sequência de 376

splay tree. V. árvore afuniladasprintf(), função de biblioteca 103SRAM 56–57. V. também memóriasrand(), função de biblioteca 175, 364, 569SSD 65–66stderr, variável de biblioteca (stream) 102stdin, variável de biblioteca (stream) 102<stdio.h>, cabeçalho de biblioteca 94stdio, módulo de biblioteca 94, 104<stdlib.h>, cabeçalho de biblioteca 157, 160, 162stdout, variável de biblioteca (stream) 102strchr(), função de biblioteca 109strcmp(), função de biblioteca 147, 253, 634strcpy(), função de biblioteca 124stream 94–95

binário 97buffer associado a 95de entrada 99implementação de 95indicador de erro em 95indicador de final de 95indicador de posição em 95padrão 102ponteiro para 95de saída 99stderr 102stdin 102stdout 102

Page 23: Índice Remissivoulysseso.com/livros/ed2/Indice.pdfÍndice Remissivo — A | 793 arquivo 64, 94 abertura de 96–100 acesso direto a 106, 111–115 atualização de registro de 121–124

Índice Remissivo — T | 813

stream (continuação)de texto 97

stringsbusca em. V. casamento de stringscasamento de. V. casamento de stringscasamento léxico de 519–522distância de edição de 517–519

strings (continuação)fopen(), usados por 96maior prefixo comum (MPC) a um conjunto de 510–513maior subsequência comum (MSC) a 513–517MPC (maior prefixo comum) de 510–513MSC (maior subsequência comum) de 513–517separação em partes (tokens) de 502–504

strpbrk(), função de biblioteca 504strtod(), função de biblioteca 124strtok(), função de biblioteca 124, 502–504substituição de cache 75SubstituiMinimoIM_Arr(), função 661substring 452, 453sucessor imediato, nó 210

T

tabela de busca 140. V. também estrutura de dadoschave de 140dicionário e 140de dispersão 360. V. também tabela de dispersãoelemento de 140encadeada 153–156. V. também tabela de busca encadeadaindexada 145. V. também tabela de busca indexadaíndice de 142organização de 143par chave/valor de 140

tabela de busca encadeada 153–156análise de 155–156busca sequencial com movimentação para início em 154–155busca sequencial com transposição em 153–154implementação de 153–155

tabela de busca indexadaanálise de 151–152busca binária em 159–161. V. também busca bináriabusca por interpolação 161–162busca sequencial em 145criação de 150–151implementação de 145–151inserção em 148–149inserção em ordem em 158remoção em 149–150

tabela de busca sequencialmente encadeada. V. tabela de busca encadeada

tabela de destruição 275–277tabela de dispersão 360

diretamente endereçável 361com encadeamento 371–376. V. também dispersão com

encadeamento

com endereçamento aberto 376–386. V. também dispersão com endereçamento aberto

tabela de maiores bordas 458–459tabela de ordenação 580, 583TabelaDeSaltosBMH(), função 475tabela de saltos do algoritmo BmH 473. V. também Horspool,

algoritmo de casamento (ou simplificação) detabela de símbolos 362tabela encadeada 153TabelaEstaEmOrdemInversa(), função 630TabelaEstaOrdenada(), função 629tabela extensível 427. V. também dispersão extensível em memó-

ria secundáriatabela indexada dinâmica 277TabelaMauCaractereBM(), função 468tabela ordenada 580, 583TabelaSufixosBM(), função 469, 470, 471TAD (tipo abstrato de dado) 145–151tAluno, tipo 122, 124, 634, 685, 694TAM_ALFABETO, constante 493tamanho

de array usado com fgets() 108–109de bloco de disco magnético 82de bloco de memória 101, 109–110de partição de arquivo 106, 111de registro de arquivo 111do tipo long int 117

TamanhoHeap(), função 547TamanhoHeapHuff(), função 558TAMANHO_INICIAL_HEAP, constante 544TAM_CHAVE_RADIX, constante 619TAM_MAIOR_PALAVRA, constante 512TAM_MATR, constante 122TAM_REG, constante 653tArvoreAVL, tipo 229tArvoreBB, tipo 204tArvoreBM, tipo 344tArvoreHuff, tipo 555tArvoreMultiMS, tipo 298tArvoreMulti, tipo 294TB, macro 300, 343tBucket, tipo 616tByteFreq, tipo 555tByte, tipo 555tCabecalhoHuff, tipo 563tCaraCoroa, tipo 175tCEP_Ind, tipo 145, 696tCEP, tipo 145, 696tChaveIndice, tipo 294, 298, 343, 697tChaveRadix, tipo 619tChave, tipo 294, 295, 343, 697TCI, macro 300, 343TC, macro 343tColetorCuco, tipo 394tColetorDEA, tipo 382tColetorDEst, tipo 422tColetorDExt, tipo 437

Page 24: Índice Remissivoulysseso.com/livros/ed2/Indice.pdfÍndice Remissivo — A | 793 arquivo 64, 94 abertura de 96–100 acesso direto a 106, 111–115 atualização de registro de 121–124

814 | Índice Remissivo — T

tCompara, tipo 253tData, tipo 365técnica de dispersão, análise de 399–400tElemArray, tipo 660tempo de execução, medição de 86teorema

3.1 (pior caso de busca sequencial) 1513.2 (melhor caso de busca sequencial) 1513.3 (custo temporal média de busca sequencial) 1513.4 (pior caso de inserção em tabela indexada) 1513.5 (pior caso de remoção em tabela indexada) 1523.6 (custo temporal de inserção em tabela encadeada) 1553.7 (melhor caso de remoção em tabela encadeada) 1563.8 (pior caso e caso médio de remoção em tabela encadeada)

1563.9 (custo espacial de tabela encadeada) 1563.10 (número máximo de comparações de chaves em busca

binária) 1633.11 (caso médio de busca binária) 1643.12 (custo temporal de inserção em tabela indexada ordena-

da) 1653.13 (número de comparações de chaves em busca por inter-

polação) 1653.14 (número máximo esperado de níveis de lista com saltos)

1783.15 (custo temporal esperado de busca em lista com saltos)

1793.16 (custo temporal esperado de inserção em lista com

saltos) 1793.17 (custo temporal esperado de inserção em lista com

saltos) 1793.18 (custo espacial esperado de lista com saltos) 1794.1 (árvore binária de busca e caminhamento em ordem

infixa) 1974.2 (pior caso de altura de árvore binária ordinária de busca)

2134.3 (altura de árvore AVL) 2324.4 (pior caso de operação em árvore AVL) 2325.1 (custo temporal de sequência de operações em tabela de

destruição) 2765.2 (custo temporal de sequência de acréscimos em tabela

indexada dinâmica) 2795.3 (custo temporal amortizado de afunilamento) 282–2846.1 (altura de árvore B) 329–3306.2 (custo de transferência de operação em árvore B) 3316.3 (custo de transferência de operação em árvore B+) 3447.1 (número de nós visitados em busca bem-sucedida em

dispersão com encadeamento) 3757.2 (número de nós visitados em busca malsucedida em

dispersão com encadeamento com listas desordenadas) 375

7.3 (número de nós visitados em busca malsucedida em dis-persão com encadeamento com listas ordenadas) 375

7.4 (custo temporal de inserção em tabela de dispersão com encadeamento com lista desordenada) 376

7.5 (custo temporal de remoção em tabela de dispersão com encadeamento) 376

9.1 (pior caso do algoritmo fB) 4579.2 (melhor caso do algoritmo fB) 4579.3 (pior caso do algoritmo kmp) 4639.4 (custo espacial do algoritmo BmH) 4769.5 (custo temporal de pré-processamento do algoritmo

BmH) 4769.6 (melhor caso do algoritmo kr) 4849.7 (pior caso do algoritmo kr) 4849.8 (pior caso de busca em trie) 4979.9 (custo temporal de remoção de string em trie) 4979.10 (custos temporal e espacial de inserção de string em trie)

49710.1 (índices de pai e filhos em árvore binária completa) 53810.2 (pior caso de inserção em heap) 54710.3 (pior caso de remoção em heap) 54711.1 (pior caso do algoritmo BuBBlesort) 58511.2 (melhor caso do algoritmo BuBBlesort) 585–58611.3 (caso médio do algoritmo BuBBlesort) 58611.4 (custo temporal do algoritmo selectionsort) 58811.5 (número máximo de trocas no algoritmo

selectionsort) 58811.6 (pior caso do algoritmo insertionsort) 59011.7 (melhor caso do algoritmo insertionsort) 59011.8 (caso médio do algoritmo insertionsort) 59111.9 (número de comparações do algoritmo Quicksort no

pior caso) 596–59711.10 (número de trocas do algoritmo Quicksort no pior

caso) 59711.11 (melhor caso do algoritmo Quicksort) 59711.12 (caso médio do algoritmo Quicksort básico) 59811.13 (custo temporal esperado do algoritmo Quicksort

aleatório) 59811.14 (custo espacial do algoritmo Quicksort no melhor

caso) 59811.15 (custo espacial do algoritmo Quicksort no pior caso)

59811.16 (custo temporal do algoritmo mergesort) 60411.17 (custo espacial do algoritmo mergesort) 60511.18 (custo temporal de criação de heap) 60911.19 (custo temporal do algoritmo HeApsort) 60911.20 (custo temporal do algoritmo countingsort)

613–61411.21 (custo espacial do algoritmo countingsort) 61411.22 (melhor caso do algoritmo Bucketsort) 61711.23 (custo espacial do algoritmo Bucketsort) 61711.24 (custo temporal do algoritmo rADixsort) 62111.25 (custo espacial do algoritmo rADixsort) 62111.26 (comparações feitas por um algoritmo de ordenação

baseado em comparações) 62311.27 (limite inferior de algoritmo baseado em comparações)

62312.1 (custo de transferência do algoritmo de intercalação

binária) 659

Page 25: Índice Remissivoulysseso.com/livros/ed2/Indice.pdfÍndice Remissivo — A | 793 arquivo 64, 94 abertura de 96–100 acesso direto a 106, 111–115 atualização de registro de 121–124

Índice Remissivo — U | 815

teorema (continuação)12.2 (custo temporal de intercalação multíplice de arrays)

66212.3 (custo de transferência de intercalação multíplice) 67212.4 (limite inferior para algoritmo de ordenação externa)

673TestaDispersao(), função 403TestaMetodo(), função 628TestaOrdenacaoMS(), função 687teste de função de dispersão 370teste de unicidade 583teto de chave 142tEvento, tipo 567tFComparaHuff, tipo 555tFCompara, tipo 544, 660, 669tFDispersaoCuco, tipo 394tFDispersaoDEA, tipo 382tFDispersao, tipo 373, 406tFiltroBloomPtr, tipo 406tFiltroBloom, tipo 406TF, macro 343tFOrdena, tipo 628TG, macro 343tHeapHuff, tipo 555tHeapIM_Arr, tipo 660tHeap, tipo 544TI, macro 300, 343time(), função de biblioteca 86, 569<time.h>, cabeçalho de biblioteca 86tipo. Procure um tipo específico pelo nome dele tipo abstrato de dado (TAD) 145–151tLanchonete, tipo 567tListaBloom, tipo 406tListaComSaltos, tipo 171tListaNosAtivos, lista 679tListaSE, tipo 153, 275, 373, 619tMatricula, tipo 694tmpfile(), função de biblioteca 104tmpnam(), função de biblioteca 104tNoArvoreBB, tipo 204tNoArvoreHuff, tipo 555tNoAVL, tipo 229tNoBM, tipo 344tNoCaminhoB, tipo 319tNoFolha, tipo 344tNoHeapHuff, tipo 555tNoHeapIM_Arr, tipo 660tNoHeap, tipo 544, 567tNoInterno, tipo 344tNoListaBloom, tipo 406tNoListaCanHuff, tipo 559tNoListaComSalto, tipo 170tNoListaSE, tipo 153, 275, 373, 616, 619, 632tNome, tipo 694tNoMultiMS, tipo 298tNoMulti, tipo 294tNoPos, tipo 679

tNoTrieMachado, tipo 505tNoTrie, tipo 493token 502tOperacao, tipo 252touch (comando do sistema operacional Unix) 82tPadraoLexico, tipo 520tParChaveIndice, tipo 685transferência de disco 288tratamento de exceção

em abertura de arquivo 96em árvore multidirecional de busca 300–301em movimentação de apontador de arquivo 113em processamento de arquivo 116–117em tabela de busca 143

tRegistroCEP, tipo 695tRegistroMEC, tipo 422, 437, 653, 669, 697tRegistro, tipo 144trie 486–492

altura de 499análise de 497–499aplicações de 487busca em 488–489compactada 500filho de nó de 487implementação de 492–497implementações alternativas de 499–500inserção em 490–492nó final de 487, 488nó folha de 488nó redundante de 500outros tipos de árvores de busca vs. 498padrão 487PATRICIA 500remoção em 490–492

TrocaGenerica(), função 546, 584tStatusCuco, tipo 394tStatusDEA, tipo 382tTabelaCuco, tipo 394tTabelaDEA, tipo 382tTabelaDE, tipo 373tTabelaDExt, tipo 437tTabelaIdx, tipo 145tTipoDeColetorDEst, tipo 422tTipoDeEvento, tipo 567tTipoDoNo, tipo 343TT, macro 343tTrieMachado, tipo 505tTrie, tipo 493Tudor.bin, arquivo de dados 124, 694Tudor.txt, arquivo de dados 114, 118, 693–694

U

UCHAR_MAX, constante de biblioteca 560, 616ungetc(), função de biblioteca 101, 105, 120unidade central de processamento 67unidade de transferência 64

Page 26: Índice Remissivoulysseso.com/livros/ed2/Indice.pdfÍndice Remissivo — A | 793 arquivo 64, 94 abertura de 96–100 acesso direto a 106, 111–115 atualização de registro de 121–124

816 | Índice Remissivo — V

Unix, sistema operacionalconceito de arquivo no 94portabilidade de stream no 95

unsigned char, tipo 562, 616USB, controlador/barramento de 68

V

ValidaPalavra(), função 510valor de dispersão 360valor inicial de dispersão 369variável, nomenclatura de 719VAZIO, constante de enumeração 382, 394

W

"w+b", modo de abertura de arquivo 98, 115"w+", modo de abertura de arquivo 98, 115"w+t", modo de abertura de arquivo 98, 115"wb", modo de abertura de arquivo 98, 121Windows, sistema operacional Microsoft

portabilidade de stream no 95"w", modo de abertura de arquivo 98"wt", modo de abertura de arquivo 98www.ulysseso.com/ed2, site deste livro li

X

xor 366, 700, 708–712