What will be the best case time complexity of the following code?
#include<bits/stdc++.h>
using namespace std;
void func(char* str2, char* str1)
{
int m = strlen(str2);
int n = strlen(str1);
for (int i = 0; i <= n - m; i++)
{
int j;
for (j = 0; j < m; j++)
if (str1[i + j] != str2[j])
break;
if (j == m)
cout << i << endl;
}
}
int main()
{
char str1[] = "1253234";
char str2[] = "323";
func(str2, str1);
return 0;
}
#include<bits/stdc++.h>
using namespace std;
void func(char* str2, char* str1)
{
int m = strlen(str2);
int n = strlen(str1);
for (int i = 0; i <= n - m; i++)
{
int j;
for (j = 0; j < m; j++)
if (str1[i + j] != str2[j])
break;
if (j == m)
cout << i << endl;
}
}
int main()
{
char str1[] = "1253234";
char str2[] = "323";
func(str2, str1);
return 0;
}A. O(n)
B. O(m)
C. O(m * n)
D. O(m + n)
Answer: Option B
Related Questions on Searching Algorithms
A. Jump Search
B. Linear Search
C. Interpolation Search
D. Binary Search
What is the time complexity of binary search on a sorted array?
A. O(n log n)
B. O(n)
C. O(n2)
D. O(log n)
What is the time complexity of binary search in a balanced binary search tree (BST)?
A. O(log n)
B. O(n)
C. O(n log n)
D. O(1)
Which searching algorithm is most efficient for large datasets that are sorted?
A. Jump Search
B. Interpolation Search
C. Linear Search
D. Binary Search

Join The Discussion