Hugendubel.info - Die B2B Online-Buchhandlung 

Merkliste
Die Merkliste ist leer.
Bitte warten - die Druckansicht der Seite wird vorbereitet.
Der Druckdialog öffnet sich, sobald die Seite vollständig geladen wurde.
Sollte die Druckvorschau unvollständig sein, bitte schliessen und "Erneut drucken" wählen.

Introduction to Algorithms and Data Structures

TaschenbuchKartoniert, Paperback
Englisch
Cengage Learningerschienen am01.11.2023
With Perez's INTRODUCTION TO ALGORITHMS AND DATA STRUCTURES, 1st Edition, a student will master basic programming patterns and learn how to use them to solve problems. One of the cornerstones of solving problems is knowing which patterns to apply. This is where algorithms and data structures become fundamental. Familiarity with data structures and algorithms allows a programmer to tackle unthinkable problems, using only a programming language´s basic control flow and loops. The book explores several common ideas -- backtracking, depth-first, breadth-first, recursion, divide and conquer and dynamic programming. Not only this will prepare students with problem-solving skills, it will also equip students with employability through technical interview tips and best practices.conquer, and dynamic programming. Not only this will prepare students with problem solving skills, it will also equip students with employability through technical interview tips and best practices.mehr

Produkt

KlappentextWith Perez's INTRODUCTION TO ALGORITHMS AND DATA STRUCTURES, 1st Edition, a student will master basic programming patterns and learn how to use them to solve problems. One of the cornerstones of solving problems is knowing which patterns to apply. This is where algorithms and data structures become fundamental. Familiarity with data structures and algorithms allows a programmer to tackle unthinkable problems, using only a programming language´s basic control flow and loops. The book explores several common ideas -- backtracking, depth-first, breadth-first, recursion, divide and conquer and dynamic programming. Not only this will prepare students with problem-solving skills, it will also equip students with employability through technical interview tips and best practices.conquer, and dynamic programming. Not only this will prepare students with problem solving skills, it will also equip students with employability through technical interview tips and best practices.
Details
ISBN/GTIN978-0-357-67356-0
ProduktartTaschenbuch
EinbandartKartoniert, Paperback
FormatTrade Paperback (USA)
Erscheinungsjahr2023
Erscheinungsdatum01.11.2023
SpracheEnglisch
Artikel-Nr.60492288

Inhalt/Kritik

Inhaltsverzeichnis
COVER PAGETITLE PAGECOPYRIGHT PAGEABOUT THE AUTHORINTRODUCTIONACKNOWLEDGMENTSDEDICATIONCHAPTER 1. RECURSION1.1. Introduction to RecursionCalculating the Power of a Number Using RecursionWhat Is Well-Defined Recursion?Stack Overflow ErrorsAdvantages of Using RecursionTail Recursion1.2. Examples of Recursive MethodsComputing Factorials with RecursionComputing the Fibonacci Sequence1.3. Direct and Indirect RecursionComputing Squares of Numbers with Direct and Indirect Recursion1.4. The Tower of HanoiUsing Recursion to Solve the Tower of Hanoi Problem1.5. Backtracking: Finding all SubsetsWhy Use Backtracking?Backtracking SolutionSummaryKey TermsReview QuestionsProgramming ProblemsProjectsCHAPTER 2. INTRODUCTION TO DATA STRUCTURES2.1. Basic Data Structures and AlgorithmsWhat Is a Data Structure?What Is an Algorithm?2.2. Abstract Data Types (ADTs)The StackWhy Use ADTs?2.3. ADT Support in Popular Programming LanguagesADTs in PythonADTs in C++ADTs in JavaADTs in Go2.4. Linear and Non-Linear Data StructuresStoring Data in a List versus a GraphExamples of Linear Data StructuresExamples of Non-Linear Data Structures2.5. Static and Dynamic Data StructuresArrays versus ListsWhen to Use a Static Data Structure2.6. Common Operations of Data StructuresTraversing a Data StructureSearching for an ElementModifying a Data StructureSummaryKey TermsReview QuestionsProgramming ProblemsProjectsCHAPTER 3. DESIGNING EFFICIENT ALGORITHMS3.1. Efficient AlgorithmsAnalyzing AlgorithmsComparing Algorithms3.2. Big O NotationComparing Functions for Big NumbersUpper Bounds for FunctionsPrinciples for Asymptotic Analysis3.3. Algorithm Time ComplexityBasic Asymptotical AnalysisBest, Worst, and Average CaseComplexity of Search in an Array3.4. Space Complexity of AlgorithmsSpace ComplexitySpace Complexity of Reversing a String3.5. Heuristic AlgorithmsComputationally Expensive ProblemsKnapsack ProblemSummaryKey TermsReview QuestionsProgramming ProblemsProjectsCHAPTER 4. SORTING ALGORITHMS4.1. Introduction to Sorting AlgorithmsFinding the Video with Most LikesWhat Is a Sorting Algorithm?Types of Sorting Algorithms4.2. Bubble SortBubble Sort ExampleBubble Sort DetailsPerformance of Bubble Sort4.3. Selection SortSelection Sort ExampleSelection Sort DetailsPerformance of Selection Sort4.4. Insertion SortInsertion Sort ExampleInsertion Sort DetailsPerformance of Insertion Sort4.5. QuicksortQuicksort ExampleQuicksort DetailsPerformance of Quicksort4.6. Merge SortMerge Sort ExampleMerge Sort DetailsPerformance of Merge SortSummaryKey TermsReview QuestionsProgramming ProblemsProjectsCHAPTER 5. SEARCH ALGORITHMS5.1. Introduction to Search AlgorithmsFinding a Friend´s Phone NumberSorted and Unsorted Searches5.2. Sequential SearchSequential Search Algorithm DetailsTime Complexity of Sequential Search5.3. Binary (Interval) SearchSearching without Checking All ElementsBinary Search AlgorithmTime Complexity of Binary Search5.4. Recursive Binary Search MethodBinary Search Using RecursionSpace Complexity of Binary SearchSummaryKey TermsReview QuestionsProgramming ProblemsProjectsCHAPTER 6. LINKED LISTS, STACKS, AND QUEUES6.1. Abstract Data Types: Linked Lists, Stacks, and QueuesLinked ListsStacksQueues6.2. Common Linked Lists OperationsWhy Use Linked Lists?Singly Linked ListsDoubly Linked ListsCircular Linked Lists6.3. Common Stack ADT MethodsWhy Use Stacks?Main Stack OperationsKeeping Parentheses Balanced with Stacks6.4. Queue ADT MethodsWhy Use Queues?Main Queue OperationsPrinting Elements of a Queue in Reverse Order6.5. Array-Based Stacks and QueuesImplementing Stacks with ArraysImplementing Queues with ArraysSummaryKey TermsReview QuestionsProgramming ProblemsProjectsCHAPTER 7. HASH TABLES7.1. Introduction to Hash TablesWhy Hash Tables?When to Use a Hash TablePerfect Hashing and Collisions7.2. Primary Hash Table OperationsInsertion in Hash TablesDeletion in Hash TablesSearch Keys in Hash Tables7.3. Hash Functions and Hash CodesHash Functions for Integer KeysPolynomial Hash CodesHashing Composite Keys7.4. Compressing Hash CodesResidue or Division MethodMultiplication Method7.5. Handling Hash CollisionsSolving Collisions with ChainingOpen Addressing Using Linear ProbingOpen Addressing Using Double Hashing7.6. Hash EfficiencyStatic HashingCollisions and Efficiency in ChainingCollisions and Efficiency in Open AddressingSummaryKey TermsReview QuestionsProgramming ProblemsProgramming ProjectsCHAPTER 8. TREES8.1. Introduction to TreesMain Characteristics of TreesTypes of TreesTree ADT and ImplementationRecursion in Trees8.2. Tree Operations and the Traversal ProcessDepth-First and Breadth-First TraversalIn-Order TraversalOther Traversals in Binary Trees8.3. Binary Search TreesWhat Is a Binary Search Tree?Searching in a BSTComplexity of Searching in BSTsInsertion and Deletion in BSTs8.4. Adelson-Velsky-Landis (AVL) TreesProperties of AVL TreesBalancing a Tree by Left and Right RotationInsertion in AVL TreesDeletion in AVL Trees8.5. Heaps and TreapsWhat Is a Heap?The Heapify OperationInsertion and Deletion in a HeapWhat Is a Treap?Insertion and Deletion in a Treap8.6. TriesWhat Is a Trie?Time Complexity of Search in a TrieInsertion and Deletion in a TrieSummaryKey TermsReview QuestionsProgramming ProblemsProjectsCHAPTER 9. GRAPHS9.1. Introduction to GraphsNetwork ConnectionsAdditional Examples9.2. Graph TerminologiesA Graph as an Abstract Data StructureThe Adjacency MatrixThe Adjacency List9.3. Depth-First TraversalImplementing Depth-First Traversal9.4. Breadth-First TraversalImplementing Breadth-First Traversal9.5. Directed and Undirected Graphs9.6. Weighted GraphsDescribing the Cost of Travels in a NetworkMultigraphsSummaryKey TermsReview QuestionsProgramming ProblemsProjectsCHAPTER 10. ADVANCED ALGORITHMS10.1. Greedy AlgorithmsParts of a Greedy AlgorithmHuffman Coding Algorithm10.2. Dynamic ProgrammingParts of Dynamic Programming0-1 Knapsack Dynamic Programming SolutionLongest Common Sub-String10.3. Dijkstra´s Algorithm for the Shortest PathDijkstra´s Algorithm ExamplesDijkstra´s Algorithm Details10.4. Knuth-Morris-Pratt (KMP) AlgorithmPattern SearchingNaive Pattern SearchingRabin-Karp String Matching AlgorithmOverview of the KMP AlgorithmImplementing the KMP Algorithm10.5. Spanning TreesMinimum Spanning TreesPrim´s Algorithm10.6. Contours and Regions in Binary ImagesFlood FillingContour FindingSummaryKey TermsReview QuestionsProgramming ProblemsProjectsmehr