Java排序方法总结(持续更新中......)

快速排序

private static void quickSort(Integer[] arr, int left, int right) {
    if (right <= left) {
        return;
    }
    int head = left;
    int tail = right;
    while (left < right) {
        //find the element smaller than head element from right side
        while (arr[right] > arr[head] && right > left) {
            right--;
        }
        //find the element bigger than head element from left side
        while (arr[left] <= arr[head] && right > left) {
            left++;
        }
        if (right > left) {
            swap(arr, left, right);
        }
    }
    swap(arr, head, right);//like: [[smlaller ele...],head ele,[bigger ele...]]
    quickSort(arr, 0, right - 1);//recursion
    quickSort(arr, right + 1, tail);//recursion
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容