1. An algorithm is a step-by-step procedure to solve a problem using a finite number of well-defined instructions and inputs. An algorithm must be unambiguous, have a finite number of steps, and be feasible with available resources.
2. Pseudo code is used to represent algorithms without using a specific programming language syntax. It uses common programming constructs like loops and conditionals. Pseudo code improves readability and acts as a bridge between algorithms and programs.
3. The time and space complexity of an algorithm measures how resources grow as the input size increases. Time complexity is evaluated based on the number of steps, while space complexity depends on memory usage. Common complexities include constant, linear, quadratic, and