# 11.1 Introduction¶

- Here, we concentrate on some key aspects of computer science thinking that go beyond programming fundamentals
- Focus on performance issues is a nice way to transition into AI and big data techniques that place extraordinary performance demands on a system’s resources

# 11.1 Introduction (cont.)¶

- Recursive functions (or methods) call themselves, either directly or indirectly through other functions (or methods)
  - Can help solve problems more naturally when an iterative solution is not apparent
- We'll look at searching and sorting arrays and other sequences
  - Fascinating problems, because no matter what algorithms you use, the final result is the same
  - Choose algorithms that perform "the best"—most likely, the ones that run the fastest or use the least memory
- For big data applications, you’ll want to choose algorithms that are easy to parallelize
  - Put lots of processors to work simultaneously

# 11.1 Introduction (cont.)¶

- Intimate relationship between algorithm design and performance
- Simplest and most apparent algorithms often perform poorly and that developing more sophisticated algorithms can lead to superior performance
- Big O notation concisely classifies algorithms by how hard they have to work to get the job done
  - Helps you compare the efficiency of algorithms.
- Optional section: Develop an animated visualization of the selection sort so you can see it "in action."
  - Great for understanding how algorithms work

©1992–2020 by Pearson Education, Inc. All Rights Reserved. This content is based on Chapter 5 of the book Intro to Python for Computer Science and Data Science: Learning to Program with AI, Big Data and the Cloud.

DISCLAIMER: The authors and publisher of this book have used their best efforts in preparing the book. These efforts include the development, research, and testing of the theories and programs to determine their effectiveness. The authors and publisher make no warranty of any kind, expressed or implied, with regard to these programs or to the documentation contained in these books. The authors and publisher shall not be liable in any event for incidental or consequential damages in connection with, or arising out of, the furnishing, performance, or use of these programs.