C++实现快速排序(可以通过leetcode!)

本文记录了作者在LeetCode刷题时遇到快速排序的问题,通过不断学习和改进代码,最终解决了排序错误的问题。文章详细展示了从错误的代码一到优化后的代码三的过程,强调了快速排序细节的重要性。
摘要由CSDN通过智能技术生成

C++实现 快速排序(可以通过leetcode!)

起因

我本是一个默默刷题的小菜鸡,从没想到自己会有写博客的一天。故事是这样的,在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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值