# Research

Here is my full **list of publications**.

Here is a **current CV**.

I’m generally interested in efficient *algorithms* and their mathematical *analysis.*

When one computational method is consistently faster than another,
there must be an intrinsic reason for that:
I believe we can find a mathematical model to approximate running time
where we still observe that difference, and by analyzing that
model mathematically,
*we learn what makes one algorithm better than another.*

## Quicksort

Java nowadays uses a
dual-pivot Quicksort,
the *Yaroslavskiy-Bentley-Bloch (YBB) Quicksort.*
I did the first average-case analysis
of this algorithm,
and an extension of the analysis of YBB Quicksort became my dissertation project.

To see dual-pivot Quicksort in action, check out the animated visualization of the algorithm (thanks to Brad Lyon)!

Rectification of Names.
Note that I referred to YBB partitioning simply as *Yaroslavskiy’s algorithm*
in my publications finished before 2016,
but besides Vladimir Yaroslavskiy, also
Jon Bentley and Joshua Bloch were involved in the development of the
algorithm early on, so it is more appropriate to call their algorithm
*YBB Quicksort.*

## Game Theory

With a group of peers I’ve explored models for the evolution of cooperation.

## Apportionment and Stick Cutting

Two seemingly unrelated problems can be solved by the same algorithmic idea: the stick-cutting problem and proportional apportionment.