怎么降低这个算法的时间复杂度?

#include <stdio.h>int main(){ int i,j,number,n,m,a,b; int array[500000]; number = 0; scanf("%d%d",&n,&m); for (i = 0; i < n; i++) { scanf("%d", &array[i]); } for(j=1; j<=m; j++) { scanf("%d%d",&a,&b); for (i = 0; i <n; i++) { if (array[i] >= a && array[i] <= b) number++; } printf("%d尀n", number); } return 0;}
2026年09月22日 05:41
有1个网友回答
网友(1):

先把数组array里的数排序, 然后再查找》=a 《=b的数对应的数组Array 的位置 假设为X Y 则Y-X+1 等于number