Input
Output
5 Properties of an Algorithm Finiteness
Definitivenes/Precision/Clarity
Effectiveness/Feasibility (Correctness?)
Criteria (same as Properties)
Parameters for selection (same as above?)
Pseudo-code
Flow-charts
Natural Language
Representations
DRAKON charts
Programming Language
Control Tables
Approximation Algorithm
Backtracking Algorithm
Brute Force Algorithm
By Design Paradigms (AB2D2GR) Divide-and-Conquer Algorithm
Dynamic Programming
Greedy Algorithm
Randomized Algorithm
Sequential/Linear Search
Binary Search (search from sorted structure)
Types of Algorithms
In array (Closed Hashing) - collision-prone
Searching Algorithm Storing
In array of linked-lists (Open Hashing) - no collision
Hashing (constant time search)
Searching
Trees
Bubble Sort
Merge Sort
By Application (S3IM)
Sorting Algorithm
Quick Sort
Heap Sort
String Processing
Image Processing
Design
Mathematical Algorithms
1. Requirements Specification
2. Algorithm Design
3. Check Correctness
Design Steps (same as SE)
3. Algorithm Analysis
4. Implementation
5. Testing
Decision Problem (yes/no)
Search Problem (finding y in x)
Types of Computational Problems (off-cnn) Counting Problem
Algorithms (selon Syllabus)
Optimization Problem (find best possible solution)
Function Problem (single output expected for every input e.g. traveling salesperson)
Best-case analysis
by result Average-case analysis
Worst-case analysis
Types of Analysis
Empirical approach analysis (experiments and drawing graphs)
Analytical approach analysis
by approach
(by math. models; finding running time for input size)
Visualization approach analysis
Analysis
(finding computational complexity) Find time-efficiency
Goals of Analysis FInd space utilization
Correctness
Uniform cost model (constant cost for each operation)
Analysis & Asymptotic Notations
Analysis Models
Logarithmic cost model (cost of operation proportional to no. of bits involved)
Asymptotic Notations O Notation
(aka Big-O Notation)
θ Notation
(a notation which represents growth
of function) Ω Notation
Singly Linked List
Doubly Linked List
Classification of Lists [?]
Circular Linked List Doubly Circular Linked List
Grounded Header Linked List
Types of Algorithms
[Class?]
List
Abstract Data Type (ADT) (logical form/concept)
Stack
Queue
Data Type Concepts int
Primitive (Built-in) Data Structures char
etc..
Data Structure (physical form)
A specific Class[or Object/Class Data Structure?]
Linked Data Structure
User-defined Data Structures
Record Data Structure
Array Data Structure
DES (Data Encryption Standard)
Encryption Algorithms
RSA (Rivest–Shamir–Adleman)
Genetic Algorithms
Recursion
Heuristic (Guided Search)