আপনি যে দুটি অপারেটরের উল্লেখ করেছেন কেবলমাত্র সেই আলগোরিদিম যা বেশ দক্ষ the অ্যালগরিদমের জটিলতা সবচেয়ে খারাপ ক্ষেত্রে ।O(n2)
আমি দুটি অপারেশন বাদ দিয়েও ধরে নিয়েছি, আমরা সেন্ডিনেল এবং বা তালিকার কোনও ক্রিয়াকলাপের সাহায্যে আমরা ডানদিকের (অপি 3) বা বামদিকের অবস্থান (ওপেন 4) কিনা তা যাচাই করতে পারি । এছাড়াও আমাদের আলাদা করে দেওয়া বা স্ব্যাপ অপারেশনের সাথে একত্রে তুলনা অপারেশন (Op 5) করা উচিত। যদি তুলনা অপারেশনটি অদলবদলের ক্রিয়াকলাপের সাথে একত্রিত হয় তবে তা অবশ্যই আমাদের জানাতে হবে যে অদলবদ সঞ্চালিত হয়েছিল কি না।+ ∞−∞+∞
যে কোনও অ্যালগোরিদম যে কোনও বুলিয়ান পতাকা ব্যবহার করে না তা জানতে আমরা কোনও উপাদান অদলবস্ত করেছি কিনা তা নীচে দেওয়া হয়েছে (মেমরির পরিবর্তে তথ্যটি মেশিনের অবস্থায় রাখার কৌশল):
Start:
Do until we are not at the leftmost position (Op 4)
move left (Op 2b)
Check:
If we are at rightmost position (Op 3)
goto Finished:
If current value is larger than next value (Op 5)
goto Unfinished:
move right (Op 2a)
Repeat Check:
Unfinished:
If we are at rightmost position (Op 3)
goto Start:
If current value is larger than next value (Op 5)
swap the elements (Op 1) and move right (Op 2a)
Repeat Unfinished:
Finished:
The list is sorted now, output it.
এরিক লিপার্টের সমাধান, জিনোম সাজানও কাজ করে, কারণ মূলত এটি দ্বিমুখী বুদ্বুদ সাজানোর কাজ।