快速排序
快速排序(Quicksort)是对冒泡排序的一种改进。通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。
设要排序的数组是A【0】......A【N-1】,首先任意选取一个数据(通常选用数组的第一个数)作为关键数据,然后将所有比它小的数都放到它前面,所有比它大的数都放到它后面,这个过程称为一趟快速排序。值得注意的是,快速排序不是一种稳定的排序算法,也就是说,多个相同的值的相对位置也许会在算法结束时产生变动。
快速排序的算法是:
1)从数组中选出一一个元素(通常第一个), 作为参照对象。
2)定义两个数组,将目标数组中剩余的元素与参照元素挨个比较:小的放到-一个數组,大的放到另外一个数组。
3)第二步执行完之后,前后的数组顺序不确定,但是确定了自己的位置。
4)将得到的小数组按照第1到第3部重复操作(子问题)。
5)回溯最小数组(一个元素)。
快速排序(php版)
最新推荐文章于 2025-03-30 22:23:02 发布