কম্পিউটার টিউটোরিয়াল

জাভাস্ক্রিপ্ট Array.sort() ফাংশন কোন অ্যালগরিদম ব্যবহার করে?

জাভাস্ক্রিপ্ট স্পেসিফিকেশন Array.sort ইমপ্লিমেন্টেশনে কোন নির্দিষ্ট অ্যালগরিদম নির্দেশ করে না। এটি ইমপ্লিমেন্টরের ऊपर ছেড়ে দেওয়া হয়েছে। তাই ভিন্ন JS ইঞ্জিন ভিন্ন সর্টিং অ্যালগরিদম ব্যবহার করে।

ব্রাউজার ইঞ্জিন অনুযায়ী অ্যালগরিদম

Mozilla (SpiderMonkey JS Engine)

Merge Sort ব্যবহার করে। সি-তে লেখা কোড মজিলা রিপোজিটরিতে পাওয়া যায়: https://dxr.mozilla.org/seamonkey/source/js/src/jsarray.c

WebKit (Chrome, Safari, ইত্যাদি)

সরাসরি কোনো এক অ্যালগরিদম ব্যবহার করে না, বরং এলিমেন্ট টাইপ এবং অ্যারে লেন্থের ওপর ভিত্তি করে অ্যালগরিদম বেছে নেয়:

  • নামেরিক অ্যারে: C++ Std লাইব্রেরির Quick Sort ফাংশন
  • নন-নামেরিক অ্যারে: Merge Sort
  • অন্যান্য কেস: Selection Sort

ডেটা টাইপ এবং অ্যারে এলিমেন্টের সাইজের ওপর নির্ভর করে কোন অ্যালগরিদম ব্যবহার হবে সেটি নির্ভর করে।

V8 (Chrome/Node.js) - আধুনিক ভerson

V8 v7.0+ (2018以降) Timsort (merge sort + insertion sort হাইব্রিড) ব্যবহার করে, যা রিয়েল-ওয়ার্ল্ড ডেটার জন্য অপ্টিমাইজড। এটি স্ট্যাবল সর্ট।

নোট

Array.sort() ডিফল্টভাবে স্ট্রিং কমপैरিজন করে। নামেরিক সর্টের জন্য কমপैरেটর ফাংশন দিতে হয়: arr.sort((a, b) => a - b)।

  1. সেরা জাভাস্ক্রিপ্ট কম্প্রেসর কোনটি?

  2. জাভাস্ক্রিপ্টে ফাংশন অ্যাক্সেস করার সময় () (প্যarethেসিস) ব্র্যাকেটের ব্যবহারিতা

  3. জাভাস্ক্রিপ্টে Math.imul() ফাংশনের ব্যবহার

  4. জাভাস্ক্রিপ্টে অ্যারেকে সর্ট অর্ডার হিসেবে ব্যবহার করা