Alonely @ 2020-04-01 18:10:39
#include<iostream>
using namespace std;
int quickSort(int *arr,int l,int r,int k)
{
int j=l;
int i=l+1;
while(i<=r)
{
if(arr[i]<arr[l])
{
swap(arr[i],arr[j+1]);
j++;
}
i++;
}
swap(arr[l],arr[j]);
if(j==k)
{
return arr[j];
}
else if(j>k)
{
return quickSort(arr,l,j-1,k);
}
else
{
return quickSort(arr,j+1,r,k);
}
}
int main()
{
ios::sync_with_stdio(false);
int n,k;
int *arr=new int[n];
cin>>n>>k;
for(int i=0;i<n;i++)
{
cin>>arr[i];
}
int m=quickSort(arr,0,n-1,k);
cout<<m<<endl;
return 0;
}
交了很多次,最高80分,最低20分,结果不是AC就是RE,咋整啊大佬们
by HearTheWindSing @ 2020-04-01 18:11:51
@Alonely 你指针申请的空间不释放而且不初始化是干啥
by zhjxaoini @ 2020-04-01 18:14:25
@wangyxhaha 程序结束会由操作系统释放啊,而且后面不就输入数据了不需要初始化啊
by andyli @ 2020-04-01 18:15:29
@Alonely 要先判 l==r
by 打表大蒟蒻 @ 2020-04-01 18:16:12
@Alonely 直接sort不香吗
by 打表大蒟蒻 @ 2020-04-01 18:16:37
再说你快排写的也不对呀
by HearTheWindSing @ 2020-04-01 18:20:43
@zhaojinxi ee,你说的自动释放是Java吧
虽说现在操作系统都很聪明,会帮忙释放,但是delete还是个很好的习惯
by Alonely @ 2020-04-01 18:22:40
@打表大蒟蒻 不想STL,快排哪里不对
by Alonely @ 2020-04-01 18:24:19
@wangyxhaha 释放也没用
by andyli @ 2020-04-01 18:34:48
@Alonely
...
int quickSort(int *arr,int l,int r,int k)
{
if (l==r) return arr[l];
...
by zhjxaoini @ 2020-04-01 18:51:23
@wangyxhaha 不是啊,Java
是由 JVM 虚拟机在运行时释放的,C++
虽然没有内存回收机制,但是任何一个程序结束后操作系统都会做清理工作啊