Introduction - Chapter 1 Flashcards
A blank is a way of organizing, storing, and performing operations on data.
data structure
A blank is the data structure that stores subitems, often called fields, with a name associated with each subitem.
record
An blank is a data structure that stores an ordered list of items, where each item is directly accessible by a positional index.
array
A blank is a data structure that stores an ordered list of items in nodes, where each node stores data and has a pointer to the next node.
linked list
A blank is a data structure in which each node stores data and has up to two children, known as a left child and a right child.
binary tree
A blank is a data structure that stores unordered items by mapping (or hashing) each item to a location in an array.
hash table
A blank is a tree that maintains the simple property that a node’s key is greater than or equal to the node’s childrens’ keys.
max-heap
A blank is a tree that maintains the simple property that a node’s key is less than or equal to the node’s childrens’ keys.
min-heap
A blank is a data structure for representing connections among items, and consists of vertices connected by edges.
graph
A blank represents an item in a graph.
vertex
An blank represents a connection between two vertices in a graph.
edge
A linked list stores an blank of items
ordered list
A node in blank can have zero, one, or two children.
binary tree
The data stored in a blank can be a record with multiple subitems.
list node
Items stored in an array can be accessed using a blank
positional index
Inserting an item at the end of a 999-item array requires how many items to be shifted?
0
Inserting an item at the end of a 999-item linked list requires how many items to be shifted?
0
Inserting an item at the beginning of a 999-item array requires how many items to be shifted?
999
Inserting an item at the beginning of a 999-item linked list requires how many items to be shifted?
0
An blank is a set of commands that must be followed for a computer to perform calculations or other problem-solving operations.
algorithm
According to its formal definition, an algorithm is a blank carried out in a specific order to perform a particular task.
finite set of instructions
An algorithm is not the blank; it is simple logic to a problem represented as an informal description in the form of a flowchart or pseudocode.
entire program or code
Input -> blank -> output
algorithm
A blank can be defined as a real-world problem or real-world instance problem for which you need to develop a program or set of instructions.
problem
An blank is defined as a step-by-step process that will be designed for a problem.
algorithm
After designing an algorithm, the algorithm is given the necessary and desired blank.
inputs
The input will be passed to the blank, producing the desired output.
processing unit
The outcome or result of the program is referred to as the blank.
output
Blank are step-by-step procedures designed to solve specific problems and perform tasks efficiently in the realm of computer science and mathematics.
Algorithms
Algorithms take blank, which can be in various formats, such as numbers, text, or images.
input data
The algorithm blank the input data through a series of logical and mathematical operations, manipulating and transforming it as needed.
processes
After the processing is complete, the algorithm produces an blank, which could be a result, a decision, or some other meaningful information.
output
A key aspect of algorithms is their blank, aiming to accomplish tasks quickly and with minimal resources.
efficiency
Algorithm designers constantly seek ways to blank their algorithms, making them faster and more reliable.
optimize
Algorithms are implemented in various blank, enabling computers to execute them and produce desired outcomes.
programming languages
Algorithms aids in your understanding of blank. When you have a sizable real-world problem, you must break it down into small steps to analyze it quickly.
scalability
The real world is challenging to break down into smaller steps. If a problem can be easily divided into smaller steps, it indicates that the problem is blank.
feasible
Algorithms are used in blank and blank to find patterns in big datasets and forecast outcomes.
data analysis
machine learning
Thanks to machine learning methods like blank, blank and blank, computers can learn from data and improve over time. These techniques are essential for applications such as recommendation systems, natural language processing, and picture recognition.
support vector machines,
decision trees, and
neural networks
Blank safeguard data by using encryption and decryption techniques, guaranteeing safe data storage and communication
Cryptography algorithms
Algorithms such as blank, blank and blank are commonly employed in data integrity maintenance, user authentication, and sensitive information security. These algorithms comprise the foundation of cybersecurity measures used in secure communications, data encryption, and online transactions.
SHA-256,
AES, and
RSA
blank can efficiently index and retrieve pertinent information thanks to search algorithms such as PageRank and Hummingbird.
Search engines
By prioritizing web pages according to their significance and relevancy, what algorithms assist users in locating the most relevant information available online. Effective search algorithms are necessary to manage the enormous volume of online information.
PageRank and Hummingbird.
Blank are utilized to select the optimal answer from various options. In various industries, including banking, engineering, logistics, and artificial intelligence, sophisticated issues are resolved using methods like gradient descent, linear programming, and genetic algorithms.
Optimization methods
Blank algorithms increase productivity, reduce expenses, and optimize resources for operations and decision-making.
Optimization
Due to their ability to analyze medical images, forecast disease outbreaks, and recognize genetic changes, algorithms are indispensable in blank.
medical diagnostics
Blank has been transformed by machine learning algorithms, in particular, which enable the creation of customized treatment regimens based on each patient’s unique genetic profile
Personalized medicine
Algorithms help to speed up the sequencing and interpretation of blank, improving biotechnology and genomics research.
genomic data
Name 6 Characteristics of an Algorithm
Finiteness
Definiteness
Input
Output
Effectiveness
Generality
An algorithm must always have a blank number of steps before it ends. When the operation is finished, it must have a defined endpoint or output and not enter an endless loop.
finite
An algorithm needs to have exact blank for each step. Clear and straightforward directions ensure that every step is understood and can be taken easily.
definitions
An algorithm requires one or more blank. The values that are first supplied to the algorithm before its processing are known as blank. These blanks come from a predetermined range of acceptable values.
inputs
One or more blank must be produced by an algorithm after every step has been completed. The relationship between the input and the result should be clear.
outputs
An algorithm’s stages must be sufficiently straightforward to be carried out in a finite time utilizing blank. With the resources at hand, every operation in the algorithm should be doable and practicable.
fundamental operations
Rather than being limited to a single particular case, an algorithm should be able to solve a blank. It should offer a generic fix that manages a variety of inputs inside a predetermined range or domain.
group of issues
A straightforward approach that exhaustively tries all possible solutions, suitable for small problem instances but may become impractical for larger ones due to its high time complexity.
Brute Force Algorithm
A method that breaks a problem into smaller, similar subproblems and repeatedly applies itself to solve them until reaching a base case, making it effective for tasks with recursive structures.
Recursive Algorithm
Utilized to transform data into a secure, unreadable form using cryptographic techniques, ensuring confidentiality and privacy in digital communications and transactions.
Encryption Algorithm
A trial-and-error technique used to explore potential solutions by undoing choices when they lead to an incorrect outcome, commonly employed in puzzles and optimization problems.
Backtracking Algorithm
Designed to find a specific target within a dataset, enabling efficient retrieval of information from sorted or unsorted collections.
Searching Algorithm
Aimed at arranging elements in a specific order, like numerical or alphabetical, to enhance data organization and retrieval.
Sorting Algorithm
Converts data into a fixed-size hash value, enabling rapid data access and retrieval in hash tables, commonly used in databases and password storage.
Hashing Algorithm
Breaks a complex problem into smaller subproblems, solves them independently, and then combines their solutions to address the original problem effectively.
Divide and Conquer Algorithm
Makes locally optimal choices at each step in the hope of finding a global optimum, useful for optimization problems but may not always lead to the best solution
Greedy Algorithm
Stores and reuses intermediate results to avoid redundant computations, enhancing the efficiency of solving complex problems.
Dynamic Programming Algorithm
Utilizes randomness in its steps to achieve a solution, often used in situations where an approximate or probabilistic answer suffices.
Randomized Algorithm
There are no well-defined standards for blank. It is, however, a problem that is resource-dependent. Algorithms are never written with a specific programming language in mind.
writing algorithms
As you all know, blank such as loops like do, for, while, all programming languages share flow control such as if-else, and so on. An algorithm can be written using these common constructs.
basic code constructs
Algorithms are typically written in a blank, but this is not always the case. Algorithm writing is a process that occurs after the problem domain has been well-defined. That is, you must be aware of the problem domain for which you are developing a solution.
step-by-step fashion
Algorithms instruct programmers on how to blank.
write code
This feature was perfectly designed for the algorithm if you are given a problem and break it down into small-small modules or small-small steps, which is a basic definition of an algorithm.
Modularity
An algorithm’s blank is defined as when the given inputs produce the desired output, indicating that the algorithm was designed correctly. An algorithm’s analysis has been completed correctly.
Correctness
It means that the algorithm should be designed in a straightforward, structured way so that when you redefine the algorithm, no significant changes are made to the algorithm.
Maintainability
It takes into account various logical steps to solve a real-world problem.
Functionality
Blank refers to an algorithm’s ability to define your problem clearly.
Robustness
If the algorithm is difficult to understand, the designer will not explain it to the programmer.
User-friendly
If an algorithm is blank, it is blank to understand.
simple
Your algorithm should be blank if another algorithm designer or programmer wants to use it.
extensible
9 Qualities of a good algorithm
Efficiency
Correctness
Clarity
Scalability
Reliability
Optimality
Robustness
Adaptability
Simplicity
Blank: A good algorithm should perform its task quickly and use minimal resources.
Efficiency
Blank: It must produce the correct and accurate output for all valid inputs.
Correctness
Blank: The algorithm should be easy to understand and comprehend, making it maintainable and modifiable.
Clarity
Blank: It should handle larger data sets and problem sizes without a significant decrease in performance.
Scalability
Blank: The algorithm should consistently deliver correct results under different conditions and environments.
Reliability
Blank: Striving for the most efficient solution within the given problem constraints.
Optimality
Blank: Capable of handling unexpected inputs or errors gracefully without crashing.
Robustness
Blank: Ideally, it can be applied to a range of related problems with minimal adjustments.
Adaptability
Blank: Keeping the algorithm as simple as possible while meeting its requirements, avoiding unnecessary complexity.
Simplicity
The amount of time required to complete an algorithm’s execution is called blank.
time complexity
The blank is used to represent an algorithm’s time complexity
big O notation
The blank for describing time complexity, in this case, is big O notation.
asymptotic notation
The blank is calculated primarily by counting the number of steps required to complete the execution
time complexity
The blank is generally considered because it is the maximum time required for any given input size.
worst-time complexity
The amount of space an algorithm requires to solve a problem and produce an output is called its blank.
space complexity
Space complexity, like time complexity, is expressed in blank.
big O notation
The space is required for an algorithm for the following reasons:
To store program instructions.
To store track of constant values.
To store track of variable values.
To store track of function calls, jumping statements, and so on.
Space Complexity = Blank + Blank
Auxiliary Space + Input Size
5 Advantages of Algorithms:
Efficiency
Reproducibility
Problem-solving
Scalability
Automation
5 Disadvantages of Algorithms:
Complexity:
Limitations:
Resource Intensive:
Inaccuracy:
Maintenance:
An blank is a structured and ordered set of instructions to do calculations and perform operations.
algorithm
The expected inputs of an algorithm must be blank to ensure its correctness, predictability, and repeatability.
well-defined
Well-defined inputs ensure that the algorithm’s behavior is blank, which means, that the same input will always produce the same output.
deterministic
Blank help prevent incorrect implementations and misunderstanding of the algorithm’s requirements.
Unambiguous inputs
With well-defined inputs, it is easier to blank the algorithm based on the characteristics of the input.
optimize
The outputs of an algorithm should be blank to ensure that the algorithm produces the intended and accurate result for a given set of inputs.
well-defined
Well-defined outputs avoid blank and guarantees that the algorithm solves the problem correctly.
ambiguity
Well-defined outputs allow you to optimize the algorithm further to achieve the results blank.
more efficiently
Ambiguity in the algorithm’s description can lead to blank and blank. That is why it is important for an algorithm to be unambiguous.
incorrect implementations and unreliable results
Unambiguity allows the algorithm to be blank i.e., the same input produces the same output, which makes debugging an implementation easier
predictable