Two fundamental operations on collections of data are searching and sorting. In this chapter, we will explore these concepts and learn how to implement various algorithms for these operations in C++.
We will focus our attention on array based structures like the `ArrayList` we implemented or a `std::vector`. We will revisit some of these algorithms, and learn new ones, in later chapters as we discuss more complex data structures.