ইতিমধ্যে বাছাই করা তালিকায় আমার একটি একক পূর্ণসংখ্যা যুক্ত করা দরকার, যেমন এটি সঠিক জায়গায় যায়। আমার প্রথম চেষ্টা কিছু ছিল
(sort (cons newelt list) #'<)
তবে, যা listইতিমধ্যে সাজানো হয়েছে, কেবলমাত্র একটি সন্নিবেশ প্রয়োজন, যার অর্থ এই অ্যালগোরিদমের ব্যবহারের ভিত্তিতে এই সমাধানটি মারাত্মকভাবে অনুপযুক্ত হতে পারে sort।
সুতরাং, কোনটি অ্যালগরিদম sortব্যবহার করে?
আমি কি নীচের মতো কিছু করা ভাল?
(let ((tail list))
;; The first element is never less-than
(while (and tail (< newelt (cadr tail)))
(setq tail (cdr tail)))
(setcdr tail (cons newelt (cdr tail)))
list)
Bইতিমধ্যেই সাজানো প্রাথমিক হতে listএবং Aএবং Cপ্রাথমিকভাবে খালি তালিকা। স্প্লিট Bদুই অংশে B1, B2লেন্থ এর mএবং mবা m+1এবং m, তুলনা neweltপ্রথম উপাদান B2। যদি neweltহয় ≥প্রসারিত Aসঙ্গে তার ডানদিকে B1এবং প্রতিস্থাপন Bসঙ্গে B2, অন্য প্রসারিত Cসঙ্গে তার বাঁদিকে B2এবং প্রতিস্থাপন Bসঙ্গে B1। এই O(log n)ধরণের পদক্ষেপের পরে কিছুই বাকি থাকে না B। তারপরে Aজিনিসগুলি ≤ neweltএবং Cসেগুলি অন্তর্ভুক্ত রয়েছে > neweltএবং সংযুক্তি বর্ধিত বাছাই করা তালিকা তৈরি করে। e-lispভাষার খুব পছন্দ না করার জন্য ক্ষমা চাইছি ।