于基准的元素分在基准左边和右边的两个区域。不同的是，快速选择并不递归访问双边，而是只递归进入一边的元素中继续寻找。这降低了平均时间复杂度，从O("n" log "n")至O("n")，不过最坏情况仍然是O("n")。与快速排序一样，快速选择一般是以原地算法的方式实现，除了选出第k小的元素，数据也得到了部分地排序。
算法.快速排序中，有一个子过程称为分区，可以在线性时间里将一个列表分为两部分（codice_1和codice_2），分别是小于基准和大于等于基准的元素。下面是以cod