Índice remissivoulysseso.com/livros/ed2/indice.pdfÍndice remissivo — a | 793 arquivo 64, 94...
TRANSCRIPT
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é.
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
Í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
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
Í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
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
Í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
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
Í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
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
Í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
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
Í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
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
Í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
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
Í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
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
Í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
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
Í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
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
Í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
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
Í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
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