首頁 > 計(jì)算機(jī)網(wǎng)絡(luò) > 編程語言與程序設(shè)計(jì) > Hands-On Data Structures and Algorithms with JavaScript
舉報(bào)

會(huì)員
Hands-On Data Structures and Algorithms with JavaScript
IfyouareaJavaScriptdeveloperlookingforpracticalexamplestoimplementdatastructuresandalgorithmsinyourwebapplications,thenthisbookisforyou.Familiaritywithdatastructuresandalgorithmswillbehelpfultogetthemostoutofthisbook.
最新章節(jié)
- Leave a review - let other readers know what you think
- Other Books You May Enjoy
- What's next?
- Summary
- Closures edge case
- Removing DOM elements and references
品牌:中圖公司
上架時(shí)間:2021-06-30 18:31:06
出版社:Packt Publishing
本書數(shù)字版權(quán)由中圖公司提供,并由其授權(quán)上海閱文信息技術(shù)有限公司制作發(fā)行
- Leave a review - let other readers know what you think 更新時(shí)間:2021-06-30 19:12:51
- Other Books You May Enjoy
- What's next?
- Summary
- Closures edge case
- Removing DOM elements and references
- Assigning variables to global scope
- Avoiding memory leaks
- Garbage collection and V8
- Mark and sweep algorithm
- Garbage collection in JavaScript
- Image and font optimizations
- The conditional function call
- Looping optimizations
- Truthy/falsy comparisons
- JavaScript optimizations
- Critical rendering path (CRP)
- Avoiding repaint and reflow
- Understanding the browser
- Avoiding complex CSS selectors
- Using shorthand properties
- Using smaller values for common ENUM
- Coding practices
- CSS optimizations
- HTML layers
- The HTML layout
- Layout and layering of HTML
- <link rel=preload >
- <link rel=prefetch >
- Prefetching and preloading resources
- DOM structuring
- HTML optimizations
- Do not reinvent the wheel
- Validating all data
- Keeping DOM access to a minimum
- Avoiding pyramid of doom
- Modularization of code
- Using ternary operators and Boolean || or &&
- Strict checking (== vs ===)
- Using 'use strict'
- Avoiding polluting the global scope
- Best practices for JavaScript
- Defining the media queries in an ascending order
- Arranging styles within a class alphabetically
- Do not use !important
- Avoiding inline styles
- CSS best practices
- Loading scripts at the end
- Using Accessible Rich Internet Applications (ARIA) attributes
- Using semantic markup
- Avoiding inline styles
- Loading style sheets in the <head>
- Making your app mobile ready
- Dropping unnecessary attributes
- Adding the correct meta-information to the page
- Declaring the correct DOCTYPE
- Best practices for HTML
- Best practices
- Micro-Optimizations and Memory Management
- Summary
- Linear space
- Constant space
- Examples of Space complexity
- Space complexity and Auxiliary space
- Recursion and additive complexity
- Polynomial time complexity classes
- Polynomial time
- Quadratic time
- Linear time
- Logarithmic time
- Constant time
- Examples of time complexity
- Recap
- Theta Notation
- Omega notation
- Big-O notation
- Asymptotic Notations
- Terminology
- Big O Notation Space and Time Complexity
- Summary
- Performance comparison
- Hoare Partition Scheme
- Lomuto Partition Scheme
- Implementing the Quicksort API
- Pseudo code
- What is Quicksort
- Quicksort API
- Implementing Mergesort API
- Pseudo code
- What is Mergesort
- Mergesort API
- Implementing Insertionsort API
- Pseudo code
- What is Insertionsort
- Insertionsort API
- Mocking library books data
- Creating an Express server
- Use cases of different sorting algorithms
- Types of sorting algorithms
- Sorting and Its Applications
- Summary
- Memoized Fibonacci generator
- Recursive Fibonacci generator
- Brute-force Fibonacci generator
- When not to use brute-force algorithm
- Implementing branch and bound algorithm
- Understanding branch and bound algorithm
- Using branch and bound algorithm to create a custom shopping list
- Implementing a minimum spanning tree using a greedy algorithm
- Pseudo code
- Understanding spanning trees
- Using a greedy algorithm to build a travel itinerary
- Implementing the dynamic programming algorithm
- Pseudo code
- Using dynamic programming to build a financial planner
- Implementing BFS
- Pseudo code
- Using BFS to determine relationships
- Implementing Dijkstra's algorithm
- Pseudo code
- Using Dijkstra to determine the shortest path
- Serializing data
- Pseudocode
- Using recursion to serialize data
- Use cases
- Creating a Node.js application
- Exploring Types of Algorithms
- Summary
- Results and analysis
- Implementing Personalized PageRank
- Creating a web server
- Pseudocode for personalized PageRank
- Understanding Personalized PageRank (PPR) Algorithm
- Understanding PageRank algorithm
- Creating a friend recommendation system for social media
- Running the reference generator
- Creating a web server
- Implementing the shortest path generation
- Generating a pseudocode for the shortest path generation
- Creating a bidirectional graph
- Creating a reference generator for a job portal
- Creating a Node.js web server
- Use cases
- Types of graphs
- Simplify Complex Applications Using Graphs
- Summary
- Visualization of the tree and output
- Predicting outcome of sample inputs
- Generating the decision tree
- Generating training dataset
- Coding the ID3 algorithm
- The final information gain per branch
- Calculating branch entropy
- Calculating target entropy
- ID3 algorithm
- Creating a credit card approval predictor
- The final form
- Retaining remainders at nodes
- Implementing the search() method
- The friends' example
- Implementing the add() method
- Creating a trie tree
- Creating a typeahead lookup
- Creating an Angular application
- Using Trees for Faster Lookup and Modifications
- Summary
- Maps and Objects
- Sets and Arrays
- Performance comparison
- Creating the Angular application
- Activity tracking and analytics for web applications
- Creating states with keymap
- Creating an Angular application
- Creating custom keyboard shortcuts for your application
- Creating an Angular application
- Use cases
- The API difference
- Understanding WeakSets
- Sets versus WeakSets
- API differences
- Memory management
- How weak is WeakMap?
- Analyzing set and map types
- Exploring the origin of sets and maps
- Using Sets and Maps for Faster Applications
- Summary
- Running benchmark tests
- Comparing performance
- Implementing logging using priority queues
- Creating a chat endpoint
- Starting the Node.js server
- Creating a Node.js application
- Use cases for queues
- Testing a priority queue
- Priority Queue
- Testing the queue
- A simple queue
- Creating a queue
- Implementing APIs
- Types of queue
- Creating Queues for In-Order Executions
- Summary
- Evaluating postfix expressions
- Converting infix to postfix expressions
- Transforming input to machine-understandable expression
- Enabling web worker communications
- Basic web worker communication
- Laying out the UI
- Building a basic web worker
- Building part of a basic JavaScript syntax parser and evaluator
- Final application logic
- Navigating between states
- Laying out the UI
- Detecting application state changes
- Setting up the application and its routing
- Creating a custom back button for a web application
- Creating a stack
- Creating an app using the CLI
- Installing Angular CLI
- Creating an Angular application
- Use cases
- Using the stack
- Testing the stack
- Implementing stack methods
- Creating a stack
- Don't we have arrays for this?
- API
- Terminology
- Prerequisites
- Building Stacks for Application State Management
- Reviews
- Get in touch
- Conventions used
- Download the color images
- Download the example code files
- To get the most out of this book
- What this book covers
- Who this book is for
- Preface
- Packt is searching for authors like you
- About the reviewer
- About the author
- Contributors
- PacktPub.com
- Why subscribe?
- PacktPub.com
- Title Page
- coverpage
- coverpage
- Title Page
- PacktPub.com
- Why subscribe?
- PacktPub.com
- Contributors
- About the author
- About the reviewer
- Packt is searching for authors like you
- Preface
- Who this book is for
- What this book covers
- To get the most out of this book
- Download the example code files
- Download the color images
- Conventions used
- Get in touch
- Reviews
- Building Stacks for Application State Management
- Prerequisites
- Terminology
- API
- Don't we have arrays for this?
- Creating a stack
- Implementing stack methods
- Testing the stack
- Using the stack
- Use cases
- Creating an Angular application
- Installing Angular CLI
- Creating an app using the CLI
- Creating a stack
- Creating a custom back button for a web application
- Setting up the application and its routing
- Detecting application state changes
- Laying out the UI
- Navigating between states
- Final application logic
- Building part of a basic JavaScript syntax parser and evaluator
- Building a basic web worker
- Laying out the UI
- Basic web worker communication
- Enabling web worker communications
- Transforming input to machine-understandable expression
- Converting infix to postfix expressions
- Evaluating postfix expressions
- Summary
- Creating Queues for In-Order Executions
- Types of queue
- Implementing APIs
- Creating a queue
- A simple queue
- Testing the queue
- Priority Queue
- Testing a priority queue
- Use cases for queues
- Creating a Node.js application
- Starting the Node.js server
- Creating a chat endpoint
- Implementing logging using priority queues
- Comparing performance
- Running benchmark tests
- Summary
- Using Sets and Maps for Faster Applications
- Exploring the origin of sets and maps
- Analyzing set and map types
- How weak is WeakMap?
- Memory management
- API differences
- Sets versus WeakSets
- Understanding WeakSets
- The API difference
- Use cases
- Creating an Angular application
- Creating custom keyboard shortcuts for your application
- Creating an Angular application
- Creating states with keymap
- Activity tracking and analytics for web applications
- Creating the Angular application
- Performance comparison
- Sets and Arrays
- Maps and Objects
- Summary
- Using Trees for Faster Lookup and Modifications
- Creating an Angular application
- Creating a typeahead lookup
- Creating a trie tree
- Implementing the add() method
- The friends' example
- Implementing the search() method
- Retaining remainders at nodes
- The final form
- Creating a credit card approval predictor
- ID3 algorithm
- Calculating target entropy
- Calculating branch entropy
- The final information gain per branch
- Coding the ID3 algorithm
- Generating training dataset
- Generating the decision tree
- Predicting outcome of sample inputs
- Visualization of the tree and output
- Summary
- Simplify Complex Applications Using Graphs
- Types of graphs
- Use cases
- Creating a Node.js web server
- Creating a reference generator for a job portal
- Creating a bidirectional graph
- Generating a pseudocode for the shortest path generation
- Implementing the shortest path generation
- Creating a web server
- Running the reference generator
- Creating a friend recommendation system for social media
- Understanding PageRank algorithm
- Understanding Personalized PageRank (PPR) Algorithm
- Pseudocode for personalized PageRank
- Creating a web server
- Implementing Personalized PageRank
- Results and analysis
- Summary
- Exploring Types of Algorithms
- Creating a Node.js application
- Use cases
- Using recursion to serialize data
- Pseudocode
- Serializing data
- Using Dijkstra to determine the shortest path
- Pseudo code
- Implementing Dijkstra's algorithm
- Using BFS to determine relationships
- Pseudo code
- Implementing BFS
- Using dynamic programming to build a financial planner
- Pseudo code
- Implementing the dynamic programming algorithm
- Using a greedy algorithm to build a travel itinerary
- Understanding spanning trees
- Pseudo code
- Implementing a minimum spanning tree using a greedy algorithm
- Using branch and bound algorithm to create a custom shopping list
- Understanding branch and bound algorithm
- Implementing branch and bound algorithm
- When not to use brute-force algorithm
- Brute-force Fibonacci generator
- Recursive Fibonacci generator
- Memoized Fibonacci generator
- Summary
- Sorting and Its Applications
- Types of sorting algorithms
- Use cases of different sorting algorithms
- Creating an Express server
- Mocking library books data
- Insertionsort API
- What is Insertionsort
- Pseudo code
- Implementing Insertionsort API
- Mergesort API
- What is Mergesort
- Pseudo code
- Implementing Mergesort API
- Quicksort API
- What is Quicksort
- Pseudo code
- Implementing the Quicksort API
- Lomuto Partition Scheme
- Hoare Partition Scheme
- Performance comparison
- Summary
- Big O Notation Space and Time Complexity
- Terminology
- Asymptotic Notations
- Big-O notation
- Omega notation
- Theta Notation
- Recap
- Examples of time complexity
- Constant time
- Logarithmic time
- Linear time
- Quadratic time
- Polynomial time
- Polynomial time complexity classes
- Recursion and additive complexity
- Space complexity and Auxiliary space
- Examples of Space complexity
- Constant space
- Linear space
- Summary
- Micro-Optimizations and Memory Management
- Best practices
- Best practices for HTML
- Declaring the correct DOCTYPE
- Adding the correct meta-information to the page
- Dropping unnecessary attributes
- Making your app mobile ready
- Loading style sheets in the <head>
- Avoiding inline styles
- Using semantic markup
- Using Accessible Rich Internet Applications (ARIA) attributes
- Loading scripts at the end
- CSS best practices
- Avoiding inline styles
- Do not use !important
- Arranging styles within a class alphabetically
- Defining the media queries in an ascending order
- Best practices for JavaScript
- Avoiding polluting the global scope
- Using 'use strict'
- Strict checking (== vs ===)
- Using ternary operators and Boolean || or &&
- Modularization of code
- Avoiding pyramid of doom
- Keeping DOM access to a minimum
- Validating all data
- Do not reinvent the wheel
- HTML optimizations
- DOM structuring
- Prefetching and preloading resources
- <link rel=prefetch >
- <link rel=preload >
- Layout and layering of HTML
- The HTML layout
- HTML layers
- CSS optimizations
- Coding practices
- Using smaller values for common ENUM
- Using shorthand properties
- Avoiding complex CSS selectors
- Understanding the browser
- Avoiding repaint and reflow
- Critical rendering path (CRP)
- JavaScript optimizations
- Truthy/falsy comparisons
- Looping optimizations
- The conditional function call
- Image and font optimizations
- Garbage collection in JavaScript
- Mark and sweep algorithm
- Garbage collection and V8
- Avoiding memory leaks
- Assigning variables to global scope
- Removing DOM elements and references
- Closures edge case
- Summary
- What's next?
- Other Books You May Enjoy
- Leave a review - let other readers know what you think 更新時(shí)間:2021-06-30 19:12:51