700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 请给出一个算法 使之对于给定的介于0到k之间的n个整数进行预处理 并能在O(1)时间

请给出一个算法 使之对于给定的介于0到k之间的n个整数进行预处理 并能在O(1)时间

时间:2024-05-26 01:19:59

相关推荐

请给出一个算法 使之对于给定的介于0到k之间的n个整数进行预处理 并能在O(1)时间

代码:

#include "iostream"using namespace std;int counting_sort(int a,int b,int A[],int B[],int k){int C[10];int i;for(i=0;i<=k;i++)C[i]=0;for(i=1;i<12;i++){C[A[i]]++;}for(i=1;i<=k;i++)C[i]=C[i-1]+C[i];return C[b]-C[a-1];}void display(int A[]){int i;for(i=1;i<=11;i++)cout<<A[i]<<" ";cout<<endl;}void main(){int A[12]={6,0,2,0,1,3,4,6,1,3,2};int k=6;int B[12];display(A);cout<<"在区间[1,4]中的个数为:"<<endl;cout<<counting_sort(1,4,A,B,k)<<endl;getchar();getchar();}

请给出一个算法 使之对于给定的介于0到k之间的n个整数进行预处理 并能在O(1)时间内 回答出输入的整数中有多少个落在区间[a..b]内 你给出的算法上预处理时间应是O(n+k)。...

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。