1. What is an algorithm?
2. Describe the difference between an algorithm and a program.
3. What are the characteristics of a good algorithm?
4. Explain the term "time complexity."
5. What is "space complexity" in the context of algorithms?
6. Define "input" and "output" in an algorithm.
7. What is a flowchart?
8. How do you represent an algorithm using pseudocode?
9. What is the importance of defining a base case in a recursive algorithm?
10. Describe the divide-and-conquer strategy.
11. What is linear search? Provide a brief description.
12. Explain binary search and how it differs from linear search.
13. What is the significance of sorting algorithms?
14. Compare bubble sort and selection sort.
15. What is a stable sort? Give an example.
16. Explain the concept of recursion.
17. What is a greedy algorithm? Provide an example.
18. Describe dynamic programming.
19. What is backtracking? How does it work?
20. What are the advantages of using algorithms?
21. Define "big O notation."
22. What is a data structure, and how is it related to algorithms?
23. What are the differences between arrays and linked lists?
24. Explain the concept of a stack.
25. What is a queue, and how does it work?
26. Describe a hash table and its purpose.
27. What are trees in data structures?
28. Explain the binary tree concept.
29. What is a binary search tree?
30. Describe a graph and its components.
31. What is a directed graph?
32. Explain the breadth-first search algorithm.
33. What is depth-first search?
34. What are the uses of Dijkstra's algorithm?
35. Define a sorting algorithm.
36. What is the quicksort algorithm?
37. Describe the merge sort algorithm.
38. Explain the insertion sort algorithm.
39. What is a fundamental operation in an algorithm?
40. What does "algorithm efficiency" mean?