问题遇到的现象和发生背景
遇到的现象和发生背景,请写出第一个错误信息
我用了快速排序为什么还是超时,应该怎么解决呢?
用代码块功能插入代码,请勿粘贴截图。 不用代码块回答率下降 50%
#include<stdio.h>
int a[1000000];
void quicksort(int left, int right)
{
int i, j, t, temp;
temp = a[left];
i = left;
j = right;
while (i != j)
{
while (a[j] >= temp && i < j)
j--;
while (a[j] >= temp && i < j)
i++;
if (i < j)
{
t = a[i];
a[i] = a[j];
a[j] = t;
}
}
a[left] = a[i];
a[i] = temp;
quicksort(left, i - 1);
quicksort(i + 1, right);
return;
}
int main()
{
int N, B,i,j,sum=0,s=0;
scanf("%d%d", &N, &B);
j = N;
for (i = 1; i <= N; i++)
{
scanf("%d", &a[i]);
}
quicksort(1, N);
while (a[j]!=0)
{
sum += a[j--];
s++;
if (sum >= B)
{
printf("%d",s-1);
break;
}
}
return 0;
}
运行结果及详细报错内容
TLE
我的解答思路和尝试过的方法,不写自己思路的,回答率下降 60%
我用了快速排序,但是还是超时了,如果不想让他超时,应该怎么办呢?