快速排序是一种常用的排序算法,它是由英国计算机科学家托尼·霍尔(Tony Hoare)于1959年发明的,被近年来被列为史上十大算法之一。快速排序利用了分治的思想,即将原问题划分成若干个规模较小、相互独立、与原问题形式相同的子问题,递归地解决这些子问题,最后将这些子问题的解组合成原问题的解。
快速排序的时间复杂度为O(nlogn),平均速度比冒泡排序、直接插入排序等常见排序算法要快很多。快速排序的基本思想是:首先在待排序的n个数据中任意选取一个数据(通常选取第一个数据),然后将比它小的数据全部放到它的左边,比它大的数据全部放到它的右边,最后将它与左右两边的数据合并。
快速排序的应用非常广泛。例如,在计算机科学中,不仅可以用它来排序整数,也可以用它来排序字符串;在工业界,快速排序也被广泛应用于数据库查询等方面;在生物信息学中,也可以用快速排序来快速查找DNA序列。