我的CODE
理論上
Qsort的時間複雜度是nlog2(n)不是嗎
那位什麼我知道TEL
#include<stdio.h>
#include<stdlib.h>
int cmp(const void* a,const void* b){
return *(int*)a-*(int*)b; //small to big
}
int main(){
int num[10001];
int i,now,len;
i=0;
len=0;
double mid;
while(scanf("%d",&now)!=EOF){
num[i]=now;
len++;
i++;
qsort(num,len,sizeof(int),cmp);
if(len%2==0){
mid=(num[len/2-1]+num[len/2])/2;
}
else {
mid=num[len/2];
}
printf("%.0lf\n",mid);
}
return 0;
}
最多會輸入N(N<10000)次,
每次多一個數都做qsort會變成O(N^2*logN)。