গণিতে কোড অনুবাদ করা
একটি (আরও বা ততোধিক) আনুষ্ঠানিক অপারেশনাল শব্দার্থবিজ্ঞান দেওয়া আপনি একটি অ্যালগরিদমের কোড (সিউডো-) কোডটিকে বেশ আক্ষরিকভাবে একটি গাণিতিক অভিব্যক্তিতে অনুবাদ করতে পারেন যা আপনাকে ফলাফল দেয়, তবে আপনি এই অভিব্যক্তিটিকে একটি কার্যকর রূপে হেরফের করতে পারেন। এটি তুলনামূলক সংখ্যা, অদলবদল, বিবৃতি, মেমরি অ্যাক্সেস, কিছু বিমূর্ত মেশিনের চক্র এবং এর মতো সংযোজনীয় ব্যয় ব্যবস্থার জন্য এটি ভাল কাজ করে।
উদাহরণ: বুদবুর্গের তুলনা
প্রদত্ত অ্যারে বাছাই করে এমন এই অ্যালগরিদম বিবেচনা করুন A
:
bubblesort(A) do 1
n = A.length; 2
for ( i = 0 to n-2 ) do 3
for ( j = 0 to n-i-2 ) do 4
if ( A[j] > A[j+1] ) then 5
tmp = A[j]; 6
A[j] = A[j+1]; 7
A[j+1] = tmp; 8
end 9
end 10
end 11
end 12
ধরা যাক আমরা সাধারণ বাছাই করা অ্যালগরিদম বিশ্লেষণ সম্পাদন করতে চাই, এটি উপাদান তুলনার সংখ্যা (লাইন 5) গণনা করা হয়। আমরা অবিলম্বে মনে রাখবেন যে এই পরিমাণ অ্যারের বিষয়বস্তু উপর নির্ভর করে না A
শুধুমাত্র তার দৈর্ঘ্যের উপর, । সুতরাং আমরা (নেস্টেড) -লুপগুলি বেশ আক্ষরিকভাবে (নেস্টেড) রাশিতে অনুবাদ করতে পারি ; লুপ ভেরিয়েবল যোগফল পরিবর্তনশীল হয় এবং পরিসীমা বহন করে। আমরা পেতে:nfor
Ccmp(n)=∑i=0n−2∑j=0n−i−21=⋯=n(n−1)2=(n2) ,
যেখানে লাইন 5 এর প্রতিটি সম্পাদনের জন্য ব্যয় হয় (যা আমরা গণনা করি)।1
উদাহরণ: বুদবুদে অদলবদল
আমি বোঝাতে করব subprogram যে লাইন নিয়ে গঠিত করার দ্বারা এই subprogram (একবার) নির্বাহ জন্য খরচ। সি আই , জেPi,ji
j
Ci,j
এখন বলা যাক আমরা অদলবদল গণনা করতে চাই , এইভাবে প্রায়শই । নির্বাহ করা হয়। এটি একটি "বেসিক ব্লক", এটি একটি সাবপ্রোগ্রাম যা সর্বদা পরমাণুভাবে সম্পাদিত হয় এবং এর কিছু ধ্রুবক ব্যয় হয় (এখানে, )। এই জাতীয় ব্লকগুলি চুক্তি করা একটি দরকারী সরলকরণ যা আমরা প্রায়শই এটি সম্পর্কে ভেবে বা কথা না বলে প্রয়োগ করি। 1P6,81
উপরের মতো অনুরূপ অনুবাদ সহ আমরা নিম্নলিখিত সূত্রে আসি:
Cswaps(A)=∑i=0n−2∑j=0n−i−2C5,9(A(i,j)) ।
( i , j ) পি 5 , 9A(i,j) অ্যারে রাষ্ট্রীয় সামনে উল্লেখ করে এর -th পুনরাবৃত্তির ।(i,j)P5,9
নোট করুন যে আমি প্যারামিটার হিসাবে পরিবর্তে ব্যবহার করি ; আমরা শীঘ্রই কেন তা দেখতে পাবেন। আমি ও প্যারামিটার হিসাবে এবং যোগ না যেহেতু ব্যয়গুলি এখানে তাদের উপর নির্ভর করে না ( ইউনিফর্ম ব্যয় মডেলটিতে , যা); সাধারণভাবে, তারা কেবল পারে।এন আই জে সি 5 , 9AnijC5,9
স্পষ্টতই, costs এর মূল্য এর সামগ্রীর উপর নির্ভর করে (মানগুলি এবং , বিশেষত) সুতরাং আমাদের তার জন্য অ্যাকাউন্ট করতে হবে। এখন আমরা একটি চ্যালেঞ্জের মুখোমুখি: আমরা কীভাবে "" " ? ঠিক আছে, আমরা স্পষ্টর লিখিত সামগ্রীর উপর নির্ভরতা তৈরি করতে পারি : এ সি 5 , 9 এP5,9AA[j]
A[j+1]
C5,9A
C5,9(A(i,j))=C5(A(i,j))+{10,A(i,j)[j]>A(i,j)[j+1],else ।
প্রদত্ত যে কোনও ইনপুট অ্যারের জন্য, এই ব্যয়গুলি যথাযথভাবে সংজ্ঞায়িত করা হয়েছে তবে আমরা আরও সাধারণ বিবৃতি চাই; আমাদের আরও দৃump় অনুমান করা দরকার। আসুন তিনটি সাধারণ মামলা তদন্ত করি।
সবচেয়ে খারাপ অবস্থা
কেবল সমষ্টিটি দেখে এবং , আমরা ব্যয়ের জন্য একটি তুচ্ছ ওপরের সীমাটি পেতে পারি:C5,9(A(i,j))∈{0,1}
Cswaps(A)≤∑i=0n−2∑j=0n−i−21=n(n−1)2=(n2) ।
কিন্তু এটি কি ঘটতে পারে , অর্থাত্ এই উপরের সীমাবদ্ধতার জন্য কোনও অর্জন করা যায়? যেমনটি দেখা যাচ্ছে, হ্যাঁ: আমরা যদি জোড়া বিযুক্ত পৃথক উপাদানগুলির একটি বিপরীতভাবে সাজানো অ্যারে ইনপুট করি তবে প্রতিটি পুনরাবৃত্তি অবশ্যই একটি সোয়াপ সম্পাদন করবে ¹ অতএব, আমরা বুব্বলসোর্টের অদলবদলের সঠিক নিকৃষ্টতম সংখ্যাটি পেয়েছি।A
সেরা কেস
বিপরীতে, একটি তুচ্ছ নিম্ন আবদ্ধ আছে:
Cswaps(A)≥∑i=0n−2∑j=0n−i−20=0 ।
এটিও ঘটতে পারে: ইতিমধ্যে বাছাই করা একটি অ্যারেতে বুদ্বোসোর্ট একক অদলবদল চালায় না।
গড় কেস
সবচেয়ে খারাপ এবং সেরা ক্ষেত্রে বেশ ফাঁক gap কিন্তু কি টিপিক্যাল অদলবদল সংখ্যা? এই প্রশ্নের উত্তর দেওয়ার জন্য, আমাদের "সাধারণ" এর অর্থ কী তা নির্ধারণ করতে হবে। তত্ত্ব অনুসারে, আমাদের কাছে অন্যের চেয়ে একটি ইনপুট পছন্দ করার কোনও কারণ নেই এবং তাই আমরা সাধারণত সমস্ত সম্ভাব্য ইনপুটগুলির তুলনায় অভিন্ন বিতরণ অনুমান করি , এটিই প্রতিটি ইনপুট সমান সম্ভাবনাযুক্ত। আমরা জোড়াযুক্ত স্বতন্ত্র উপাদানগুলির সাথে অ্যারেগুলিতে নিজেকে সীমাবদ্ধ করি এবং এভাবে এলোমেলোভাবে ক্রমানুসারে মডেল ধরে নিই ।
তারপরে, আমরা আমাদের ব্যয়গুলি এর মতো আবারও লিখতে পারি:
E[Cswaps]=1n!∑A∑i=0n−2∑j=0n−i−2C5,9(A(i,j))
এখন আমাদের অঙ্কের সাধারণ কারসাজির বাইরে যেতে হবে। অ্যালগরিদম দিকে তাকিয়ে মাধ্যমে আমরা লক্ষ করুন যে, প্রত্যেক swap 'র ঠিক একটি সরিয়ে ফেলা বিপর্যয় মধ্যে (আমরা শুধুমাত্র কখনও neighbours³ অদলবদল)। যে সঞ্চালিত অদলবদল সংখ্যা, হয় ঠিক inversions সংখ্যা এর । সুতরাং, আমরা অভ্যন্তর দুটি যোগফল প্রতিস্থাপন এবং পেতে পারেনAAinv(A)A
E[Cswaps]=1n!∑Ainv(A) ।
আমাদের জন্য ভাগ্যবান, গড় বিপর্যয়ের সংখ্যা নির্ধারিত হয়েছে
E[Cswaps]=12⋅(n2)
যা আমাদের চূড়ান্ত ফলাফল। মনে রাখবেন যে এটি সবচেয়ে খারাপের জন্য প্রায় অর্ধেক খরচ।
- নোট করুন যে অ্যালগোরিদমটি সাবধানতার সাথে তৈরি করা হয়েছিল যাতে
i = n-1
বাইরের লুপের সাথে "শেষ" পুনরাবৃত্তি যা কখনও কিছুই করে না তা কার্যকর করা হয় না।
- " expected " হ'ল "প্রত্যাশিত মান" এর জন্য গাণিতিক স্বরলিপি, যা এখানে কেবল গড়।E
- আমরা সেই পথেই শিখেছি যে কোনও অ্যালগরিদম যা প্রতিবেশী উপাদানগুলিকে কেবল অদলবদল করে বুদ্বোসোর্ট (এমনকি গড়) এর চেয়ে তাত্পর্যপূর্ণভাবে দ্রুততর হতে পারে না - এই জাতীয় সমস্ত অ্যালগোরিদমের জন্য বিপর্যয়ের সংখ্যা একটি কম আবদ্ধ। এটি যেমন সন্নিবেশ বাছাই এবং নির্বাচন সাজান প্রযোজ্য ।
সাধারণ পদ্ধতি
আমরা উদাহরণে দেখেছি যে আমাদের নিয়ন্ত্রণ কাঠামোটি গণিতে অনুবাদ করতে হবে; আমি অনুবাদ বিধিগুলির একটি সাধারণ উপহার উপস্থাপন করব will আমরা আরও দেখেছি যে প্রদত্ত যে কোনও উপ-প্রোগ্রামের দাম বর্তমান অবস্থার উপর নির্ভর করে , এটি (মোটামুটি) ভেরিয়েবলের বর্তমান মান। যেহেতু অ্যালগরিদম (সাধারণত) রাষ্ট্র পরিবর্তন করে, তাই সাধারণ পদ্ধতিটি উল্লেখ করার জন্য কিছুটা জটিল is আপনি যদি বিভ্রান্তি বোধ শুরু করেন তবে আমি আপনাকে উদাহরণটিতে ফিরে যেতে বা আপনার নিজের তৈরি করার পরামর্শ দিচ্ছি।
আমরা বর্তমান অবস্থা দিয়ে চিহ্নিত করি (এটিকে পরিবর্তনশীল কার্যভারের সেট হিসাবে কল্পনা করুন)। আমরা যখন রাষ্ট্র শুরু হওয়া কোনও প্রোগ্রাম করি, তখন আমরা (প্রদত্ত সমাপ্তি) অবস্থায় শেষ করি।ψ ψ / পিψP
ψψ/PP
স্বতন্ত্র বিবৃতি
কেবল একটি একক বিবৃতি দেওয়া S;
, আপনি এটির জন্য । এটি সাধারণত একটি ধ্রুবক ফাংশন হবে।CS(ψ)
প্রকাশ
আপনার যদি E
ফর্মটির একটি অভিব্যক্তি থাকে E1 ∘ E2
(বলুন, একটি গাণিতিক এক্সপ্রেশন যেখানে ∘
সংযোজন বা গুণ হতে পারে, আপনি পুনরাবৃত্তভাবে ব্যয় যোগ করতে পারেন:
CE(ψ)=c∘+CE1(ψ)+CE2(ψ) ।
মনে রাখবেন যে
- অপারেশন ব্যয় স্থির না হতে পারে তবে এবং এবং এর মানগুলির উপর নির্ভর করেc∘E1E2
- ভাবের মূল্যায়ন রাষ্ট্রকে অনেক ভাষায় পরিবর্তন করতে পারে,
সুতরাং আপনি এই নিয়ম সঙ্গে নমনীয় হতে পারে।
ক্রম
প্রোগ্রামগুলির P
ক্রম হিসাবে একটি প্রোগ্রাম দেওয়া Q;R
, আপনি এতে ব্যয় যোগ করেন
CP(ψ)=CQ(ψ)+CR(ψ/Q) ।
Conditionals কে
P
ফর্মের একটি প্রোগ্রাম দেওয়া if A then Q else R end
, ব্যয়গুলি রাজ্যের উপর নির্ভর করে:
CP(ψ)=CA(ψ)+{CQ(ψ/A)CR(ψ/A),A evaluates to true under ψ,else
সাধারণভাবে, মূল্যায়ন A
রাষ্ট্রের খুব ভাল পরিবর্তন করতে পারে, তাই পৃথক শাখাগুলির ব্যয়ের জন্য আপডেট।
-Loops জন্য
P
ফর্ম একটি প্রোগ্রাম দেওয়া for x = [x1, ..., xk] do Q end
, ব্যয় বরাদ্দ
CP(ψ)=cinit_for+∑i=1kcstep_for+CQ(ψi∘{x:=xi})
যেখানে প্রক্রিয়াকরণ সামনে রাষ্ট্র মান সঙ্গে পুনরাবৃত্তির পর অর্থাৎ সেট হচ্ছে , ..., ।ψiQ
xi
x
x1
xi-1
লুপ রক্ষণাবেক্ষণের জন্য অতিরিক্ত ধ্রুবকগুলি নোট করুন; লুপ ভেরিয়েবলটি তৈরি করতে হবে ( ) এবং এর মানগুলি নির্ধারিত করতে হবে ( )। এটি যেহেতু প্রাসঙ্গিকcinit_forcstep_for
- পরের কম্পিউটিং
xi
ব্যয়বহুল হতে পারে এবং
for
খালি শরীরের সাথে একটি- লুপ (যেমন একটি নির্দিষ্ট ব্যয়ের সাথে সেরা-কেস সেটিংকে সরল করার পরে) এর পুনরুক্তি সম্পাদন করে তবে শূন্যের দাম নেই।
যদিও-Loops
P
ফর্ম একটি প্রোগ্রাম দেওয়া while A do Q end
, ব্যয় বরাদ্দ
CP(ψ) =CA(ψ)+{0CQ(ψ/A)+CP(ψ/A;Q),A evaluates to false under ψ, else
অ্যালগরিদম পরিদর্শন করে, এই পুনরাবৃত্তিটি প্রায়শই ফর-লুপগুলির জন্য সমান পরিমাণ হিসাবে উপস্থাপিত হতে পারে।
উদাহরণ: এই সংক্ষিপ্ত অ্যালগরিদম বিবেচনা করুন:
while x > 0 do 1
i += 1 2
x = x/2 3
end 4
নিয়ম প্রয়োগ করে, আমরা পাই
C1,4({i:=i0;x:=x0}) =c<+{0c+=+c/+C1,4({i:=i0+1;x:=⌊x0/2⌋}),x0≤0, else
স্বতন্ত্র বিবৃতিতে কিছু ধ্রুবক ব্যয় with সহ আমরা পরোক্ষভাবে অনুমান যে এই না না রাষ্ট্র উপর নির্ভর করে (মান এবং ); এটি "বাস্তবতায়" সত্য হতে পারে বা নাও পারে: ওভারফ্লো সম্পর্কে চিন্তা করুন!c…i
x
এখন আমরা এই পুনরাবৃত্তি সমাধান করতে হবে । আমরা নোট করি যে দু'টি পুনরাবৃত্তির সংখ্যা লুপের শরীরের দামের উপর নির্ভর করে না , তাই আমরা এটিকে ফেলে দিতে পারি। আমরা এই পুনরাবৃত্তি সঙ্গে বাকি:C1,4i
C1,4(x)={c>c>+c+=+c/+C1,4(⌊x/2⌋),x≤0, else
এটি প্রাথমিক উপায়গুলির সাথে সমাধান করে
C1,4(ψ)=⌈log2ψ(x)⌉⋅(c>+c+=+c/)+c> ,
পুরো রাষ্ট্রকে প্রতীকীভাবে পুনঃপ্রণয়ন; যদি , তবে ।ψ={…,x:=5,…}ψ(x)=5
প্রক্রিয়া কল
কিছু পরামিতি (গুলি) এর জন্য P
ফর্মের একটি প্রোগ্রাম দেওয়া হয়েছে যেখানে (নামযুক্ত) প্যারামিটার সহ একটি পদ্ধতি রয়েছে , খরচ নির্ধারণ করুনM(x)
x
M
p
CP(ψ)=ccall+CM(ψglob∘{p:=x}) ।
অতিরিক্ত ধ্রুবক (আবার বাস্তবে উপর নির্ভর করে !) নোট করুন । প্রকৃত কলগুলি কীভাবে আসল মেশিনে প্রয়োগ করা হয়, এবং কখনও কখনও রানটাইমকেও প্রাধান্য দেয় (উদাহরণস্বরূপ ফিবোনাচি নম্বর পুনরাবৃত্তিটি নির্মোহভাবে মূল্যায়ন করে) এর কারণে প্রক্রিয়াগুলি ব্যয়বহুল।ccallψ
আমি এখানে রাষ্ট্রের সাথে আপনার কিছু অর্থপূর্ণ বিষয় নিয়ে টক্কর দিচ্ছি। আপনি বৈশ্বিক রাষ্ট্র এবং এই জাতীয় স্থানীয় থেকে প্রক্রিয়া কলকে আলাদা করতে চাইবেন। এর ঠিক অনুমান আমরা কেবল বৈশ্বিক রাষ্ট্র এখানে প্রেরণ এবং যাক M
একটি নতুন স্থানীয় রাষ্ট্র, এর মান সেট করে সক্রিয়া পায় p
করার x
। তদুপরি, x
এটি একটি অভিব্যক্তি হতে পারে যা আমরা (সাধারণত) এটি পাস করার আগে মূল্যায়ন করতে অনুমান করি।
উদাহরণ: পদ্ধতিটি বিবেচনা করুন
fac(n) do
if ( n <= 1 ) do 1
return 1 2
else 3
return n * fac(n-1) 4
end 5
end
বিধি (গুলি) অনুসারে আমরা পাই:
Cfac({n:=n0})=C1,5({n:=n0})=c≤+{C2({n:=n0})C4({n:=n0}),n0≤1, else=c≤+{creturncreturn+c∗+ccall+Cfac({n:=n0−1}),n0≤1, else
নোট করুন যে আমরা বৈশ্বিক রাষ্ট্রকে অবজ্ঞা করি, যেমন fac
স্পষ্টভাবে কোনও অ্যাক্সেস করে না। এই নির্দিষ্ট পুনরাবৃত্তিটি সমাধান করা সহজ
Cfac(ψ)=ψ(n)⋅(c≤+creturn)+(ψ(n)−1)⋅(c∗+ccall)
টিপিকাল সিউডো কোডে আপনি যে ভাষা বৈশিষ্ট্যগুলির মুখোমুখি হবেন তা আমরা coveredেকে রেখেছি। উচ্চ-স্তরের সিউডো কোড বিশ্লেষণ করার সময় লুকানো ব্যয় থেকে সাবধান থাকুন; যদি সন্দেহ হয়, উদ্ঘাটিত। স্বরলিপিটি জটিল মনে হতে পারে এবং এটি অবশ্যই স্বাদের বিষয়; তালিকাভুক্ত ধারণাগুলি উপেক্ষা করা যাবে না, যদিও। তবে কিছু অভিজ্ঞতার সাহায্যে আপনি এখনই দেখতে পারবেন রাজ্যের কোন অংশগুলি কোন ব্যয়ের পরিমাপের জন্য প্রাসঙ্গিক, উদাহরণস্বরূপ "সমস্যার আকার" বা "উল্লম্বের সংখ্যা"। বাকিগুলি বাদ দেওয়া যায় - এটি জিনিসগুলিকে উল্লেখযোগ্যভাবে সরল করে!
থাকে তবে আপনি এখনই মনে করেন যে, এই পর্যন্ত খুব জটিল হয়, পরামর্শ করা: এটা হল ! রানটাইম পূর্বাভাস (এমনকি আপেক্ষিক এমনকি) সক্ষম করার জন্য রিয়েল মেশিনের এত কাছাকাছি যে কোনও মডেলটিতে অ্যালগরিদমের সঠিক মূল্য নির্ধারণ করা একটি কঠোর প্রচেষ্টা। এবং এটি এমনকি বাস্তব মেশিনে ক্যাচিং এবং অন্যান্য বাজে প্রভাব বিবেচনা করে না।
সুতরাং, অ্যালগরিদম বিশ্লেষণ প্রায়শই গাণিতিকভাবে ট্র্যাকটেবল হওয়ার পয়েন্টে সরলীকৃত হয়। উদাহরণস্বরূপ, আপনার যদি যথাযথ ব্যয়ের প্রয়োজন না হয় তবে আপনি যে কোনও সময়ে অতিরিক্ত (বা উপরের শর্তের জন্য lower নিম্ন সীমানার জন্য) কম বা অল্প মূল্য ফেলতে পারেন: ধ্রুবকের সেট কমিয়ে আনতে পারেন, শর্তসাপেক্ষে পরিত্রাণ পেতে পারেন, পরিমাণকে সরলীক করতে পারেন ইত্যাদি।
অ্যাসিম্পোটিক ব্যয়ের উপর একটি নোট
আপনি সাধারণত সাহিত্যে এবং ওয়েবে কী খুঁজে পাবেন তা হ'ল "বিগ-ওহ বিশ্লেষণ"। যথাযথ শব্দটি হ'ল অ্যাসিম্পটোটিক বিশ্লেষণ যার অর্থ আমরা উদাহরণ হিসাবে যেমন যথাযথ ব্যয় অর্জন না করি তার পরিবর্তে আপনি কেবলমাত্র একটি ধ্রুবক ফ্যাক্টর এবং সীমাতে ব্যয় করেন (মোটামুটি বলতে গেলে "বড় ")।n
এটি (প্রায়শই) ন্যায্য, যেহেতু মেশিন, অপারেটিং সিস্টেম এবং অন্যান্য কারণগুলির উপর নির্ভর করে বিমূর্ত বিবৃতিগুলির বাস্তবে কিছু (সাধারণত অজানা) ব্যয় হয় এবং অপারেটিং সিস্টেম প্রথম স্থানে প্রক্রিয়া স্থাপন করে এবং কী নোট করে না তার দ্বারা সংক্ষিপ্ত রানটাইমগুলি প্রাধান্য পেতে পারে। সুতরাং আপনি যাইহোক, কিছু বিশৃঙ্খলা পেতে।
অ্যাসিম্পোটিক বিশ্লেষণ এই পদ্ধতির সাথে কীভাবে সম্পর্কিত তা এখানে রয়েছে।
প্রভাবশালী ক্রিয়াকলাপগুলি চিহ্নিত করুন (যেগুলি ব্যয়কে উদ্বুদ্ধ করে), এটি বেশিরভাগ ক্ষেত্রে ঘটে এমন ক্রিয়াকলাপগুলি (ধ্রুবক কারণগুলি অবধি)। বুদবুর্গ্ট উদাহরণে, একটি সম্ভাব্য পছন্দ হ'ল লাইন 5 এর সাথে তুলনা করা।
বিকল্পভাবে, প্রাথমিক ক্রিয়াকলাপের জন্য সমস্ত ধ্রুবককে তাদের সর্বোচ্চ (উপরে থেকে) শ্রদ্ধার সাথে আবদ্ধ করুন। তাদের সর্বনিম্ন (নীচে থেকে) এবং সাধারণ বিশ্লেষণ সম্পাদন করুন।
- ব্যয় হিসাবে এই ক্রিয়াকলাপের কার্যকর গণনা ব্যবহার করে বিশ্লেষণ সম্পাদন করুন।
- সরলকরণের সময় অনুমানের অনুমতি দিন। আপনার লক্ষ্য যদি উপরের দিকের ( ) শ্রদ্ধা হয় তবে কেবল উপরের থেকে অনুমানের অনুমতি দেওয়ার জন্য যত্ন নিন । নীচের থেকে যদি আপনি নিম্ন সীমা ( ) চান।ΩOΩ
আপনি ল্যান্ডাউ প্রতীকগুলির অর্থ বুঝতে পেরেছেন তা নিশ্চিত করুন । মনে রাখবেন যে তিনটি ক্ষেত্রেই এই ধরনের সীমানা বিদ্যমান ; ব্যবহার একটি খারাপ-কেস বিশ্লেষণ পরোক্ষভাবে না।O
আরও পড়া
অ্যালগরিদম বিশ্লেষণে আরও অনেক চ্যালেঞ্জ এবং কৌশল রয়েছে। এখানে কিছু প্রস্তাবিত পড়া হয়।
চারপাশে অনেকগুলি ট্যাগ ট্যাগ করা অ্যালগরিদম-বিশ্লেষণ যা এই জাতীয় কৌশল ব্যবহার করে।