دروس جافا
ملف جافا
مشكلة العثور على الوسيط لمصفوفتين مفروزتين هي سؤال كلاسيكي في مقابلة الترميز. ويتمثل التحدي في العثور على الوسيط بكفاءة، مع تعقيد زمني قدره O(log(min(m, n)))، حيث m وn هما حجما المصفوفتين. في هذه المقالة، سنتعرف على حل Java الذي يستخدم البحث الثنائي لتحقيق هذه الكفاءة.
بمعلومية المصفوفتين المرتبتين nums1 وnums2، أوجد الوسيط للمصفوفتين المفرزتين. يجب أن يكون التعقيد الإجمالي لوقت التشغيل هو O(log(min(m, n)))، حيث m وn هما حجم المصفوفتين.
لحل هذه المشكلة، نستخدم أسلوب البحث الثنائي على أصغر المصفوفتين. الهدف هو تقسيم كلا المصفوفتين بحيث يحتوي النصف الأيسر على جميع العناصر الأقل من أو المساوية للعناصر الموجودة في النصف الأيمن. إليك شرح خطوة بخطوة:
إليك تطبيق Java التفصيلي للحل:
public class MedianOfTwoSortedArrays { public double findMedianSortedArrays(int[] nums1, int[] nums2) { // Ensure nums1 is the smaller array if (nums1.length > nums2.length) { int[] temp = nums1; nums1 = nums2; nums2 = temp; } int x = nums1.length; int y = nums2.length; int low = 0, high = x; while (low minY) { high = partitionX - 1; } else { low = partitionX 1; } } throw new IllegalArgumentException("Input arrays are not sorted"); } public static void main(String[] args) { MedianOfTwoSortedArrays solution = new MedianOfTwoSortedArrays(); int[] nums1 = {1, 3}; int[] nums2 = {2}; System.out.println("Median: " solution.findMedianSortedArrays(nums1, nums2)); // Output: 2.0 int[] nums1_2 = {1, 2}; int[] nums2_2 = {3, 4}; System.out.println("Median: " solution.findMedianSortedArrays(nums1_2, nums2_2)); // Output: 2.5 } }
يوفر أسلوب البحث الثنائي هذا حلاً فعالاً للعثور على متوسط صفيفتين مفروزتين. من خلال الاستفادة من البحث الثنائي على المصفوفة الأصغر، يحقق الحل تعقيدًا زمنيًا قدره O(log(min(m, n)))، مما يجعله مناسبًا لمصفوفات الإدخال الكبيرة.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3