বুদবুদোর এই সিডো কোডটি বিবেচনা করে:
FOR i := 0 TO arraylength(list) STEP 1
switched := false
FOR j := 0 TO arraylength(list)-(i+1) STEP 1
IF list[j] > list[j + 1] THEN
switch(list,j,j+1)
switched := true
ENDIF
NEXT
IF switched = false THEN
break
ENDIF
NEXT
গড় সময়-জটিলতার মূল্যায়ন করার জন্য আমার যে মূল ধারণাগুলি মনে রাখতে হবে? আমি ইতিমধ্যে সবচেয়ে খারাপ এবং সেরা কেসগুলি গণনা করতে পেরেছি, তবে সমীকরণটি গঠনের জন্য, অভ্যন্তরীণ লুপের গড় জটিলতা কীভাবে মূল্যায়ন করতে হবে তা বিবেচনা করে আমি আটকে রয়েছি।
সবচেয়ে খারাপ ক্ষেত্রে সমীকরণটি হ'ল:
যার মধ্যে অন্তঃস্থ সিগমা অভ্যন্তরীণ লুপকে উপস্থাপন করে এবং বাইরের সিগমা বাইরের লুপকে উপস্থাপন করে। আমি মনে করি যে "if-then-ব্রেক" -ক্লাউজের কারণে আমাকে উভয় সিগমাস পরিবর্তন করতে হবে যা বাইরের সিগমাতে প্রভাব ফেলতে পারে তবে অভ্যন্তরীণ লুপের if-claus এর কারণেও হতে পারে, যা একটি লুপের সময় করা ক্রিয়াকে প্রভাবিত করবে (4 টি ক্রিয়াকলাপ 1 টি তুলনা যদি সত্য হয়, অন্যথায় কেবল 1 তুলনা)।
গড়-সময় শব্দটি সম্পর্কে স্পষ্টতার জন্য: এই বাছাই করা অ্যালগরিদমকে বিভিন্ন তালিকায় (একই দৈর্ঘ্যের) বিভিন্ন সময় প্রয়োজন হবে, কারণ তালিকাটি সম্পূর্ণরূপে সীমাবদ্ধ না হওয়া পর্যন্ত অ্যালগরিদমের লুপগুলির মধ্যে / কমপক্ষে আরও কম পদক্ষেপের প্রয়োজন হতে পারে। আমি প্রয়োজনীয় round রাউন্ডগুলির গড় মূল্যায়ন করার জন্য একটি গাণিতিক (নন স্ট্যাটিস্টিকাল উপায়) সন্ধান করার চেষ্টা করি।
এটির জন্য আমি কোনও আদেশ একই সম্ভাবনা হওয়ার আশা করি।