Imperative Style Selection Sort in OCaml

Exercise 2.2-2 of the book Introduction to Algorithms introduced the selection sort algorithm.  I decided to write it in OCaml in imperative style. The selection sort algorithm sorts a list first by switching places of…

The Efficiency of an Algorithm

We need to analyze algorithms to choose the most efficient algorithm to implement.  One important aspect we look at is the running time of an algorithm, which often depends on the size of input.  (See…

Pseudocode, Insertion Sort and Loop Invariant

Pseudocode In Chapter 2 of Introduction to Algorithms, the authors introduce pseudocode.  Pseudocode is a way to describe algorithms.  Pseudocode is not computer code and is not typically concerned with issues of software engineering (e.g.,…

Introduction to Algorithms

What is an algorithms? From chapter 1 of Introduction to Algorithms, an algorithm is any well-defined procedure that transforms a set of input to a set of output with desired properties.  It is a tool…

Imperative Programming in OCaml

Imperative Vs Functional Programming So far, what I’ve done in OCaml is functional, i.e., I declare functions and the output value of a function depends only on the arguments that are passed to the function. …

Data Structures in OCaml

In this post I continue going through Chapter 1 of Real World OCaml.  I learnt that: Errors may be caught at compile time or at run time.  Compile-time errors are preferred to runtime errors, because…

Moving on to Real World OCaml

After finishing the first 4 chapters of OCaml from the very beginning, I feel I am ready to move on to other learning resources that assume more programming background.  After all, I can write the…