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

জাভাস্ক্রিপ্টে বাকেট সর্ট ইমপ্লিমেন্ট করা

বাকেট সর্ট n সাইজের অ্যারেটিকে k বাকেটে ভাগ করে কাজ করে যারা একটি নির্দিষ্ট রেঞ্জের এলিমেন্ট ভ্যালু ধারণ করে।

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

আমরা এই অ্যালগরिदমকে নিচের মতো বর্ণনা করতে পারি:

অ্যালগরিদম:

Create the initial bucketSort function
Create variables for i, min, max, and bucket size
Find min and max value
Create amount of buckets
Push values to correct buckets
Sort buckets

উদাহরণ

এটির জন্য কোড হবে:

const arr = [32, 6, 34, 4, 78, 1, 6767, 4, 65, 34, 879, 7];
const bucketSort = arr => {
  if (arr.length === 0) {
    return arr;
  }
  let i,
  minValue = arr[0],
  maxValue = arr[0],
  bucketSize = 5;
  arr.forEach(function (currentVal) {
    if (currentVal < minValue) {
      minValue = currentVal;
    } else if (currentVal > maxValue) {
      maxValue = currentVal;
    }
  })
  let bucketCount = Math.floor((maxValue - minValue) / bucketSize) + 1;
  let allBuckets = new Array(bucketCount);
  for (i = 0; i < allBuckets.length; i++) {
    allBuckets[i] = [];
  }
  arr.forEach(function (currentVal) {
    allBuckets[Math.floor((currentVal - minValue) / bucketSize)].push(currentVal);
  });
  arr.length = 0;
  allBuckets.forEach(function(bucket) {
    insertion(bucket);
    bucket.forEach(function (element) {
      arr.push(element)
    });
  });
  return arr;
}
const insertion = arr => {
  let length = arr.length;
  let i, j;
  for(i = 1; i < length; i++) {
    let temp = arr[i];
    for(j = i - 1; j >= 0 && arr[j] > temp; j--) {
      arr[j+1] = arr[j];
    }
    arr[j+1] = temp;
  }
  return arr;
};
console.log(bucketSort(arr));

আউটপুট

কনসোলে আউটপুট:

[
  1, 4, 4, 6,
  7, 32, 34, 34,
  65, 78, 879, 6767
]
  1. জাভাস্ক্রিপ্টে কুইক সোর্ট ইমপ্লিমেন্টেশন

  2. জাভাস্ক্রিপ্টে ইন্সারশন সোর্ট ইমপ্লিমেন্টেশন

  3. জাভাস্ক্রিপ্টে রেডিক্স সর্ট (Radix Sort) বাস্তবায়ন

  4. জাভাস্ক্রিপ্ট Sort() মেথড