Sorting and Searching Algorithms in Scala [Integrated Course]

More Information
Learn
  • Understand and implement bubble sort and a functional merge sort
  • Explore naive string searching and the more advanced KMP algorithm.
  • Implement a purely functional hash table
  • Learn about structural searching
  • Master unbalanced binary and red-black trees and implement both in a functional manner
  • Understand depth and breadth-first search traversal
  • Implement an efficient solution for the closest pair problem.
About

Scala's functional programming features are a boon when it comes to designing easy-to-reason-about systems to curb growing software complexities. In this course, we will learn about many concepts and tools available in the Scala language by implementing, in a functional manner, some sorting and searching algorithms.

Most algorithms are traditionally defined in an imperative manner, typically consisting of repetitions in the form of conditional looping and altering states. Writing these in a functional manner is not always a trivial process. In this course, we will do just that. We will also show how to implement search data structures in a functional and immutable manner.

We will look at number sorting, substring searches, hash tables, red black binary trees, and the closest pair algorithm. Along the way, we will talk about bubble sort, merge sort, Knuth-Morris-Pratt string searching, structural sharing in functional data structures, and various problems with immutable data structures. Further, we will explore the classic closest pair algorithm and show how we can solve the problem efficiently in a functional manner.

By the end of the course, you will have gained a thorough knowledge of many functional Scala concepts and will understand these algorithms and data structures.

All the code and supporting files for this course are available at https://github.com/PacktPublishing/Sorting-and-Searching-Algorithms-in-Scala.

Key Features

  • Learn functional programming in Scala via examples
  • Discuss the advantages of developing algorithms in a functional manner.
  • Reinforce your knowledge using assessments and quizzes
  • Verify the concepts learned via an end-of-the-course practical project

Who this course is for

This course is aimed at intermediate Scala developers who want to learn in depth about functional programming concepts in Scala. This course will help intermediate developers understand some of the more complex Scala tools by practising with searching and sorting algorithms and their functional implementations.

Features
  • Learn functional programming in Scala via examples
  • Discuss the advantages of developing algorithms in a functional manner.
  • Reinforce your knowledge using assessments and quizzes
  • Verify the concepts learned via an end-of-the-course practical project
Course Length 5 hours 16 minutes
ISBN 9781788476850
Date Of Publication 28 Jun 2018

Authors

James Cutajar

James Cutajar is a software developer with an interest in scalable, high-performance computing, and distributed algorithms. He is also an author, open source contributor, blogger, and a tech evangelist. When he is not writing software, he is riding his motorbike, surfing, or flying light aircraft. He was born in Malta, lived in London for almost a decade, and is now working in Portugal.