快速排序

来源:互联网 发布:阿里云centos搭建ss 编辑:程序博客网 时间:2024/05/21 06:29

时间复杂度:

O(n*log2n)

算法稳定性:

不稳定

原理:

1:首先在数组中选取一个参照点 T。(参照点的选择好坏直接影响效率)

2:将数组调整为 T 左边所有点Tl小于 T, T 右边所有点Tr 大于等于T。

3:递归的对 Tl 和 Tr 执行 1,2,3步骤知道不能再分。

没有图!

注:本系列算法是用于记录自己学习算法阶段对每个算法的自己理解。

@Overridepublic int[] sort(int[] source) {return changer(source, 0, source.length - 1);}public int[] changer(int[] source, int l, int r){if (l >= r){return source;}int temp = source[l];int start = l;int end = r;while (l < r){while (l < r && source[r] >= temp){r--;}source[l] = source[r];while (l < r && source[l] < temp){l++;}source[r] = source[l];}source[l] = temp;changer(source, start, l - 1);changer(source, l + 1, end);return source;}


0 0