البرمجة

تنظيف وتصفية المصفوفة في Java: إزالة التكرار بعد الفرز

في هذا الكود البرمجي الذي كتبته، يظهر لي أنك تقوم بفرز مصفوفة (arr) باستخدام خوارزمية الفرز البسيطة (Selection Sort). ومن ثم، يتم طباعة عناصر المصفوفة المفرزة.

إذا كنت ترغب في تجنب ظهور الأرقام المتكررة في المصفوفة، يمكنك استخدام تقنية بسيطة للتحقق وإزالة الأرقام المكررة بعد عملية الفرز. يمكنك تحقيق ذلك عبر إضافة بعض الشروط إلى الجزء النهائي من الكود.

اليك نسخة معدلة من الكود:

java
int[] arr = {5, 10, 44, 2, 44, 44, 5, 10, 44, 2, 44, 44}; int startScan; int index; int minindex; int minValue; for (startScan = 0; startScan < (arr.length - 1); startScan++) { minindex = startScan; minValue = arr[startScan]; for (index = startScan + 1; index < arr.length; index++) { if (arr[index] < minValue) { minValue = arr[index]; minindex = index; } } arr[minindex] = arr[startScan]; arr[startScan] = minValue; } // قم بإزالة الأرقام المتكررة int[] uniqueArr = new int[arr.length]; int uniqueCount = 0; for (int i = 0; i < arr.length - 1; i++) { if (arr[i] != arr[i + 1]) { uniqueArr[uniqueCount++] = arr[i]; } } // آخر عنصر في المصفوفة لن يتم فحصه في الحلقة السابقة، لذلك يجب إضافته يدويًا uniqueArr[uniqueCount++] = arr[arr.length - 1]; // طباعة المصفوفة النهائية بدون تكرار for (int x = 0; x < uniqueCount; x++) { System.out.println(uniqueArr[x]); }

هذا التعديل يقوم بإنشاء مصفوفة جديدة تسمى uniqueArr لتخزين الأرقام دون تكرار. يتم فحص الأرقام المتكررة أثناء الطباعة، ويتم تخزين النتيجة في uniqueArr. ثم يتم طباعة uniqueArr بدلاً من المصفوفة الأصلية (arr).

المزيد من المعلومات

بالطبع، دعنا نوسع قليلاً على المعلومات حول الكود والتعديلات التي تم إجراؤها.

الجزء الأول من الكود يقوم بتنفيذ خوارزمية الفرز البسيطة (Selection Sort)، وهي واحدة من الطرق البسيطة لترتيب العناصر في مصفوفة. تعتمد الخوارزمية على تحديد أصغر عنصر في كل مرة وتبديله مع العنصر الحالي في الفحص.

التعديل الذي تم إجراؤه يأتي في الجزء الثاني من الكود، حيث تم إضافة خطوات لإزالة الأرقام المتكررة. بعد عملية الفرز، يتم استخدام مصفوفة جديدة تسمى uniqueArr لتخزين الأرقام بدون تكرار. يتم فحص الأرقام المتكررة أثناء الطباعة، ويتم تخزين النتيجة في uniqueArr. ثم يتم طباعة uniqueArr بدلاً من المصفوفة الأصلية (arr).

هذا النهج يضمن أن النتيجة النهائية تكون قائمة بالأرقام دون تكرار. الكود يستند إلى الافتراض الذي يقول إن المصفوفة المدخلة مرتبة بالفعل. إذا لم تكن مرتبة، قد تحتاج إلى إجراء بعض التعديلات الإضافية.

زر الذهاب إلى الأعلى