1/17
These flashcards cover key vocabulary and concepts related to data structures and algorithms as outlined in the lecture notes.
Name | Mastery | Learn | Test | Matching | Spaced | Call with Kai |
|---|
No analytics yet
Send a link to your students to track their progress
Data Structure
A way to organize data in a computer's memory.
Algorithm
A well-defined computational procedure that takes input and produces output.
Abstract Data Type (ADT)
An entity that consists of a data structure and the operations that can be performed on it.
Abstraction
The process of modeling a problem by focusing on the relevant characteristics and ignoring the irrelevant ones.
Finiteness (Property of Algorithms)
An algorithm must complete after a finite number of steps.
Correctness (Property of Algorithms)
An algorithm must compute the correct answer for all possible legal inputs.
Efficiency (Property of Algorithms)
An algorithm must solve problems using the least amount of computational resources.
Static Data Structure
A data structure with a fixed size, where the content can be modified without changing the allocated memory.
Dynamic Data Structure
A data structure that can change in size during operations.
Computational Complexity
A measure of the degree of difficulty of an algorithm, expressed in terms of execution time or memory.
Big-O Notation
A notation for estimating the upper bound of the complexity functions of algorithms.
Best Case
The scenario where an algorithm requires the minimum number of operations.
Worst Case
The scenario where an algorithm requires the maximum number of operations.
Average Case
The scenario where an algorithm requires an average number of operations between the best and worst cases.
Properties of Algorithms
Characteristics that algorithms should possess, including finiteness, definiteness, sequence, feasibility, correctness, language independence, completeness, effectiveness, and efficiency.
Robustness
The ability of software to generate correct outputs for every possible input and execute efficiently.
Adaptability
The ability of software to evolve due to changing market conditions or emerging technologies.
Reusability
The capability of using developed software components in future applications to save time and resources.