求一个算法把n个数中的第k大的数求出来,要求时间复杂度为O(n)_百度知...答:int heapsort(int *data1, int n, int bigk)//利用堆排序,存在一种优化方案:建立K大的堆 { int data[] = {1,343,34,23,56,234,787,25};//Part 1 int i, j, j2, k;int tmp;for(k = (n>>1) - 1; k >= 0; k--){ tmp = data[k];for(j = k; (j<<1) <= ...
c语言在所指向的整数数组中查找第k个最大元素全部数组的值是非负的?答:printf("第%d大的数是%d", n,get_kth_largest(mm,n));getchar();return 0;} 结果如下: int mm[]={2,3,4,1,8,6,7,5,9,-1};
在EXCEL中,根据条件求第K个最大值或最小值答:D2的公式为:=IF(ISERROR(LARGE(IF(A:A="文科",B:B),ROW(A1))),"",LARGE(IF(A:A="文科",B:B),ROW(A1)))E2的公式为:=IF(ISERROR(LARGE(IF(A:A="理科",B:B),ROW(A1))),"",LARGE(IF(A:A="文科",B:B),ROW(A1)))...
C语言 有一个数组N,按升序排列输出大小为前K的数的位置答:} int main(){ int n,k;scanf("%d%d",&n,&k);//输入数据个数,要求的k for(int i=0;i<n;i++){ scanf("%d",&p[i].date);p[i].id=i;} qsort(p,n,sizeof(In),cmp);printf("%d\n",p[k-1].id);//输出第k大数在原来数组的位置。。从0开始 } ...