Java 8 থেকে Arrays.parallelSort() মেথডটি একটি অত্যন্ত কার্যকরী পদ্ধতি হিসেবে উপস্থিত হয়েছে, যা স্ট্যান্ডার্ড সর্টিং প্রক্রিয়া থেকে দ্রুত এবং কার্যকরী প্যারালাল (parallel) সর্টিং উপলব্ধ করে। এটি বিশেষত বড় ডেটাসেটের ক্ষেত্রে পারফরম্যান্স উন্নত করার জন্য উপকারী, কারণ এটি ডেটা সেটের উপাদানগুলোকে একাধিক থ্রেডের মাধ্যমে প্যারালালভাবে প্রক্রিয়া করতে পারে।
Arrays.parallelSort() মেথডটি Java স্ট্যান্ডার্ড লাইব্রেরির java.util.Arrays ক্লাসে অন্তর্ভুক্ত, এবং এটি একটি অ্যারে বা সান্নিধ্যযুক্ত ডেটাসেটের উপাদানগুলিকে দ্রুত এবং কার্যকরভাবে সর্ট (sort) করতে ব্যবহৃত হয়।
Arrays.parallelSort() মেথডের কাজ
Arrays.parallelSort() মেথড প্যারালাল সর্টিং এর মাধ্যমে কার্যকরভাবে বড় অ্যারে বা লিস্টের উপাদানগুলোকে সort করে, যা সাধারণ সর্টিংয়ের তুলনায় দ্রুত কাজ করে। এটি merge sort বা TimSort ব্যবহার করতে পারে এবং এটি অ্যারে ডেটার জন্য প্যারালাল প্রসেসিংকে সমর্থন করে।
- Parallel sorting ডেটা একাধিক থ্রেডে ভাগ করে দ্রুত সর্টিং সম্পন্ন করে, বিশেষত যখন ডেটা বড় হয়।
- এটি CPU কোর ব্যবহার করে দ্রুত সর্টিং করার জন্য অ্যারে উপাদানগুলোকে ভাগ করে।
Arrays.parallelSort() এর বৈশিষ্ট্য:
- পারফরম্যান্স: প্যারালাল সর্টিং অনেক দ্রুত কাজ করে বড় ডেটাসেটের জন্য, কারণ এটি CPU কোর ব্যবহার করে।
- ডেটার ভাগ (Partitioning): প্যারালাল সর্টিং অ্যারে ডেটা কে একাধিক অংশে ভাগ করে এবং একে একে প্রতিটি অংশ সর্ট করে, এরপর এগুলোকে একত্রে মিশিয়ে ফলাফল প্রদান করা হয়।
- সিরিয়াল সর্টিংয়ের তুলনায় দ্রুত: ছোট ডেটাসেটের জন্য
parallelSort()সব সময় সিরিয়াল সর্টিং থেকে দ্রুত হতে নাও পারে, তবে বড় ডেটা সেটের জন্য এটি অনেক কার্যকরী। - মেমরি ব্যবস্থাপনা: প্যারালাল সর্টিং মেমরি ব্যবস্থাপনা এবং প্রক্রিয়া নিয়ন্ত্রণ করতে পারে, তবে এটি অনেক বেশি মেমরি ব্যবহারের কারণ হতে পারে।
Arrays.parallelSort() ব্যবহার
Arrays.parallelSort() মেথডটি দুটি ভিন্নভাবে ব্যবহার করা যায়: একে এক্সটেন্ডেড অ্যারে বা একে Primitive টাইপ অ্যারে দিয়ে।
Primitive Types অ্যারে:
Java 8 এ Arrays.parallelSort() অনেক প্রিমিটিভ টাইপের অ্যারে সর্ট করতে সমর্থন করে। যেমন int[], long[], double[], ইত্যাদি।
Object Types অ্যারে:
এটি একইভাবে অবজেক্ট টাইপ অ্যারে (যেমন Integer[], String[], ইত্যাদি) সোর্ট করার জন্যও ব্যবহৃত হতে পারে।
Arrays.parallelSort() এর উদাহরণ
Primitive Types অ্যারে সর্টিং (int[] Example)
import java.util.Arrays;
public class ParallelSortExample {
public static void main(String[] args) {
int[] numbers = {12, 5, 7, 3, 9, 1, 14, 2};
System.out.println("Before Parallel Sort: " + Arrays.toString(numbers));
// Parallel Sort
Arrays.parallelSort(numbers);
System.out.println("After Parallel Sort: " + Arrays.toString(numbers));
}
}আউটপুট:
Before Parallel Sort: [12, 5, 7, 3, 9, 1, 14, 2]
After Parallel Sort: [1, 2, 3, 5, 7, 9, 12, 14]এখানে, Arrays.parallelSort() ব্যবহার করা হয়েছে একটি int[] অ্যারে সর্ট করার জন্য। এটি স্ট্যান্ডার্ড Arrays.sort() এর তুলনায় দ্রুত হতে পারে যখন অ্যারে বড় হয়।
Object Types অ্যারে সর্টিং (Integer[] Example)
import java.util.Arrays;
public class ParallelSortExample {
public static void main(String[] args) {
Integer[] numbers = {12, 5, 7, 3, 9, 1, 14, 2};
System.out.println("Before Parallel Sort: " + Arrays.toString(numbers));
// Parallel Sort
Arrays.parallelSort(numbers);
System.out.println("After Parallel Sort: " + Arrays.toString(numbers));
}
}আউটপুট:
Before Parallel Sort: [12, 5, 7, 3, 9, 1, 14, 2]
After Parallel Sort: [1, 2, 3, 5, 7, 9, 12, 14]এখানে, Arrays.parallelSort() ব্যবহার করা হয়েছে একটি Integer[] অ্যারে সর্ট করার জন্য, যা স্বাভাবিকভাবে compareTo() মেথডের মাধ্যমে কম্পেয়ার করা হয়।
String[] Example
import java.util.Arrays;
public class ParallelSortExample {
public static void main(String[] args) {
String[] words = {"banana", "apple", "grape", "orange", "kiwi"};
System.out.println("Before Parallel Sort: " + Arrays.toString(words));
// Parallel Sort
Arrays.parallelSort(words);
System.out.println("After Parallel Sort: " + Arrays.toString(words));
}
}আউটপুট:
Before Parallel Sort: [banana, apple, grape, orange, kiwi]
After Parallel Sort: [apple, banana, grape, kiwi, orange]এখানে, Arrays.parallelSort() ব্যবহার করা হয়েছে একটি String[] অ্যারে সর্ট করার জন্য, এবং শব্দগুলোর অ্যালফাবেটিক্যাল অর্ডারে সজ্জিত হয়েছে।
কখন Arrays.parallelSort() ব্যবহার করা উচিত
- বড় ডেটাসেট: যখন ডেটাসেট খুব বড় হয়, তখন
Arrays.parallelSort()অধিক কার্যকরী। কারণ এটি একাধিক থ্রেড ব্যবহার করে ডেটা প্রক্রিয়াকরণ করতে সক্ষম। - যত বেশি CPU কোর: যেহেতু এটি প্যারালাল প্রসেসিং ব্যবহার করে, এটি সেরা পারফরম্যান্স প্রদান করবে যখন
Read more