What will be the time complexity of the following algorithm: 
sum = 0; 
for (i=1; i<=n; i= i*2)
     for (j=1; j

        sum+=i*j; 

A

O(n)

B

O(logn)

C

O(n2)

D

O(n log n) 

উত্তরের বিবরণ

img

এই প্রোগ্রামের time complexity নির্ধারণ করা হয় দুইটি লুপের বৃদ্ধির হার বিশ্লেষণ করে। নিচে ধাপে ধাপে ব্যাখ্যা করা হলো।

  1. Outer Loop:
    for (i = 1; i <= n; i = i * 2)
    এখানে i প্রতি ধাপে দ্বিগুণ হচ্ছে, অর্থাৎ 1, 2, 4, 8,… এভাবে বাড়ছে যতক্ষণ না n অতিক্রম করছে।
    তাই ধাপের সংখ্যা হয় প্রায় log₂n, অর্থাৎ O(log n)

  2. Inner Loop:
    for (j = 1; j < n; j++)
    এখানে j এক করে বাড়ছে, তাই এটি লিনিয়ার বৃদ্ধি, অর্থাৎ O(n) বার চলবে।

  3. মোট Iteration:
    Outer loop চলে O(log n) বার, এবং প্রতিবার inner loop চলে O(n) বার।
    তাই মোট সময়ের জটিলতা হবে O(n × log n)
    প্রতিটি স্টেটমেন্ট যেমন sum += i * j — এর সময় লাগে O(1)

যদি দুইটি লুপই লিনিয়ার হতো, যেমন—
for (i = 1; i <= n; i++)
 for (j = 1; j < n; j++)
তাহলে outer loop n বার এবং inner loop n বার চলত, ফলে মোট সময় হতো O(n²)

অতএব, মূল প্রোগ্রামের time complexity = O(n log n), যা বিকল্প -এর সঙ্গে মিলে।

Unfavorite

0

Updated: 14 hours ago

Related MCQ

Which one is a compile time polymorphism?

Created: 17 hours ago

A

Virtual function 

B

Operator overloading

C


Function overriding

D

Dynamic binding

Unfavorite

0

Updated: 17 hours ago

A router processes packets @1 Gbps; if 10 packets (1200 bytes each) arrive at once, queuing delay for the 10th packets (in µs) is:

Created: 1 day ago

A

96

B

86.4

C

115.2

D

120

Unfavorite

0

Updated: 14 hours ago

 Hyper-threading:

Created: 17 hours ago

A

creates multiple physical cores

B

Allows a single physical core to execute multiple threads simultaneously

C

reduces cache size

D

Only applied to GPU

Unfavorite

0

Updated: 17 hours ago

© LXMCQ, Inc. - All Rights Reserved

Developed by WiztecBD