起因
我本是一个默默刷题的小菜鸡,从没想到自己会有写博客的一天。故事是这样的,在leetcode做到了和选择排序思想相关的题目,便想着先复习(学习)选择排序,在各位前辈的文章中,我很快地就自以为掌握了快速排序的思想,在vs上写出了快排的函数,用一个数组检验正确后就没管它了。
然而,今天在做第215题(数组中的第K个最大元素)时,想着先用快速排序的暴力解法。但,我提交时显示解答错误,有案例没有通过。当时(快排)我用的是代码一:
啰嗦了一大堆,总之就是,记录我今天的快排学习心(beng)路(kui)历程,
代码一
快速排序的思想我就不赘述了,前辈们讲解的都特别好,很好理解。以下的代码来源于:
理论部分和代码注释部分都特别浅显易懂
(为了找bug我对照着改了)应该是一模一样的。
#include<iostream>
#include<algorithm>
using namespace std;
void quickSort(int a[],int left,int right) {
if (left >= right) return;
int i, j, base,m;
i = left;
j = right;
base = a[left];
while (i < j) {
if (i < j && a[j] >= base)
j--;
if (i < j && a[i] <= base)
i++;
if (i < j) {
swap(a[i], a