يعد فرز مجموعة من الأرقام إحدى العمليات الرئيسية عند تطوير البرامج بلغة جافا. يتيح لك الفرز المناسب تنظيم البيانات وتبسيط معالجتها. في جافا ، هناك عدة طرق بسيطة لفرز مجموعة من الأرقام ، والتي سننظر إليها في هذه المقالة.
واحدة من أسهل الطرق لفرز مجموعة من الأرقام هي استخدام المصفوفات.طريقة الفرز (). تقع هذه الطريقة في فئة المصفوفات من جافا.حزمة أوتيل ويسمح لك لفرز مجموعة في ترتيب تصاعدي. مثال على استخدام المصفوفات.طريقة الفرز () تبدو كما يلي:
كثافة العمليات [] أرقام = {5, 2, 8, 1, 9};
المصفوفات.فرز (أرقام);
إذا كنت بحاجة إلى فرز المصفوفة بترتيب تنازلي ، فيمكنك استخدام فئة المصفوفات وطريقة فرزها (). للقيام بذلك ، قم بتمرير الوسيطة الثانية من المصفوفات.طريقة الفرز () كائن من فئة المقارنة ، والذي سيتجاوز طريقة المقارنة (). للفرز بترتيب تنازلي ، يمكنك استخدام المجموعات.طريقة ريفيرسوردر (). نموذج التعليمات البرمجية:
طريقة أخرى بسيطة لفرز مجموعة من الأرقام هي استخدام المصفوفات.طريقة المتوازي (). تقوم هذه الطريقة بفرز المصفوفة المتوازية. مثال على استخدام المصفوفات.طريقة المتوازي () تبدو مثل هذا:
كثافة العمليات [] أرقام = {5, 2, 8, 1, 9};
المصفوفات.المتوازي (أرقام);
في هذه المقالة ، نظرنا في بعض الطرق البسيطة لفرز مجموعة من الأرقام في جافا. يعتمد أي واحد يجب استخدامه على متطلبات المهمة وسياق التطوير الحالي. بعد مراجعة أمثلة التعليمات البرمجية ، ستتمكن من اختيار الطريقة الأنسب لنفسك.
- مجموعة من الأرقام في جاوة: كيفية فرز?
- 1. الفرز باستخدام المصفوفات.طريقة الفرز ()
- 2. الفرز باستخدام المصفوفات.طريقة المتوازي ()
- 3. الفرز باستخدام التنفيذ الخاص بك
- خوارزميات الفرز
- فرز الفقاعات
- الفرز حسب الاختيار
- الفرز حسب الإدخالات
- دمج الفرز
- الفرز السريع
- فرز الفقاعات
- الفرز حسب طريقة الاختيار
- الفرز حسب طريقة الإدراج
- أمثلة على رمز فرز الصفيف
- 1. المصفوفات.طريقة الفرز ()
- 2. المصفوفات.طريقة المتوازي ()
- 3. خوارزمية فرز الفقاعات
- 4. اختيار خوارزمية الفرز
- سؤال وجواب
مجموعة من الأرقام في جاوة: كيفية فرز?
فرز مجموعة من الأرقام في جافا هي واحدة من العمليات الرئيسية عند العمل مع البيانات. تتيح لك المصفوفة المصنفة إجراء البحث والمقارنة والعمليات الأخرى باستخدام البيانات بشكل أكثر كفاءة. هناك عدة طرق لفرز مجموعة من الأرقام في جافا.
1. الفرز باستخدام المصفوفات.طريقة الفرز ()
. تستخدم هذه الطريقة خوارزمية الفرز السريع لفرز مجموعة من الأرقام بكفاءة.
مثال على الكود:
استيراد جافا.أوتيل.صفائف;
الطبقة العامة الرئيسية {
العامة ثابت الفراغ الرئيسي (سلسلة[] الحجج) {
كثافة العمليات [] أرقام = {5, 2, 9, 1, 3};
المصفوفات.فرز (أرقام);
ل (عدد الباحث : أرقام) {
النظام.خارج.برينتلن (عدد);
}
}
}
خاتمة:
1
2
3
5
9
2. الفرز باستخدام المصفوفات.طريقة المتوازي ()
، مما يسمح لك بفرز مجموعة من الأرقام بالتوازي. تستخدم هذه الطريقة خوارزمية فرز ميرجيسورت.
مثال على الكود:
استيراد جافا.أوتيل.صفائف;
الطبقة العامة الرئيسية {
العامة ثابت الفراغ الرئيسي (سلسلة[] الحجج) {
كثافة العمليات [] أرقام = {5, 2, 9, 1, 3};
المصفوفات.المتوازي (أرقام);
ل (عدد الباحث : أرقام) {
النظام.خارج.برينتلن (عدد);
}
}
}
خاتمة:
1
2
3
5
9
3. الفرز باستخدام التنفيذ الخاص بك
إذا كنت بحاجة إلى تنفيذ خوارزمية الفرز الخاصة بك ، فيمكنك استخدام خوارزميات مختلفة مثل فرز الفقاعات أو فرز التحديد أو فرز الإدراج.
مثال على الكود باستخدام فرز الفقاعات:
الطبقة العامة الرئيسية {
العامة ثابت الفراغ الرئيسي (سلسلة[] الحجج) {
كثافة العمليات [] أرقام = {5, 2, 9, 1, 3};
بوبليسورت (أرقام);
ل (عدد الباحث : أرقام) {
النظام.خارج.برينتلن (عدد);
}
}
بابليسورت باطلة ثابتة العامة (كثافة العمليات[] أرقام) {
كثافة العمليات ن = أرقام.الطول;
تبادلت منطقية;
هل {
تبديل = خطأ;
ل (إنت أنا = 1 ؛ أنا < ن ؛ أنا {) {
إذا (أرقام [أنا-1] > أرقام [أنا]) {
إنت تيمب = أرقام [أنا-1];
أرقام [أنا-1] = أرقام [أنا];
أرقام [أنا] = درجة الحرارة;
تبادلت = صحيح;
}
}
n--;
} بينما (تبادلت);
}
}
Вывод:
1
2
3
5
9
هذه ليست سوى بعض الطرق التي يمكنك فرز مجموعة من الأرقام في جافا. يعتمد اختيار الطريقة على الأداء المطلوب والموارد المتاحة ومتطلبات الفرز.
خوارزميات الفرز
هناك العديد من خوارزميات الفرز ، لكل منها خصائصه الخاصة ويستخدم في مواقف مختلفة. دعونا نلقي نظرة على عدد قليل منهم:
- فرز الفقاعات
- الفرز حسب الاختيار
- الفرز حسب الإدخالات
- دمج الفرز
- الفرز السريع
فرز الفقاعات
يعد فرز الفقاعات أحد أبسط خوارزميات الفرز. يمر عبر المصفوفة عدة مرات ويقارن بين عنصرين متجاورين في كل تكرار. إذا كانت العناصر في ترتيب خاطئ ، يتم تبديلها. وبالتالي ، فإن أكبر عنصر" ينبثق " إلى الموضع الصحيح بعد كل تكرار.
الفرز حسب الاختيار
يتكون الفرز حسب الاختيار من إيجاد الحد الأدنى للعنصر في المصفوفة ووضعه في البداية. ثم تتكرر العملية لبقية المصفوفة ، متجاهلة العناصر التي تم فرزها بالفعل. وبالتالي ، سيكون أصغر عنصر في الموضع الأول ، والأكبر التالي في الثاني ، وهكذا.
الفرز حسب الإدخالات
يتم الفرز حسب الإدخالات على عناصر المصفوفة ، بدءا من العنصر الثاني. يقارن العنصر الحالي بالعناصر السابقة ، وإذا كان العنصر الحالي أصغر من العنصر السابق ، فإنه يقوم بتبادلها. تتكرر هذه العملية حتى يصبح العنصر الحالي أكبر من العنصر السابق. وبالتالي ، يتم تقسيم المصفوفة إلى أجزاء مصنفة وغير مصنفة ، ويتم إدخال كل عنصر من الجزء غير المصنف في الموضع الصحيح في الجزء المصنف.
دمج الفرز
دمج الفرز يستخدم مبدأ"فرق تسد". يقسم المصفوفة إلى نصفين ، ويفرز كل نصف بشكل متكرر ، ثم يجمعها في مصفوفة واحدة مرتبة. تستمر هذه العملية حتى يتم فرز المصفوفة بأكملها.
الفرز السريع
الفرز السريع هو خوارزمية فرز أخرى تعتمد على مبدأ "فرق تسد". يقوم بتحديد عنصر مرجعي من المصفوفة ويقسم المصفوفة إلى جزأين: عناصر أصغر من المرجع ، وعناصر أكبر من المرجع. ثم يتم تكرار العملية لكل جزء حتى يتم فرز المصفوفة. الميزة الرئيسية لهذه الخوارزمية هي كفاءتها على المصفوفات الكبيرة وفي معظم الحالات تعمل بشكل أسرع من الخوارزميات الأخرى.
| الخوارزمية | أفضل حالة | متوسط الحالة | أسوأ حالة |
|---|---|---|---|
| فرز الفقاعات | س (ن) | س (ن^2) | س (ن^2) |
| الفرز حسب الاختيار | س (ن^2) | س (ن^2) | س (ن^2) |
| الفرز حسب الإدخالات | س (ن) | س (ن^2) | س (ن^2) |
| دمج الفرز | س (ن سجل ن) | س (ن سجل ن) | س (ن سجل ن) |
| الفرز السريع | س (ن سجل ن) | س (ن سجل ن) | س (ن^2) |
ما سبق هو بعض خوارزميات الفرز الشائعة في جافا. كل خوارزمية لها مزاياها وعيوبها ، ويعتمد اختيار خوارزمية معينة على المهمة المحددة والبيانات التي تعمل معها. لاحظ أنه يمكن تغيير وقت تنفيذ كل خوارزمية اعتمادا على حجم بيانات الإدخال وترتيبها.
فرز الفقاعات
يعد فرز الفقاعات أحد أبسط خوارزميات الفرز. يعتمد على مقارنة عناصر المصفوفة المجاورة وتبادلها بالتتابع من أجل نقل العناصر إلى الأماكن الصحيحة.
يمكن وصف خوارزمية فرز الفقاعة على النحو التالي:
- تذهب من خلال مجموعة ومقارنة كل اثنين من العناصر المجاورة.
- إذا لم تكن العناصر بالترتيب الصحيح ، فقم بإجراء تبادل.
- Повторить шаги 1 и 2 для всех элементов массива до тех пор, пока массив не будет отсортирован.
Пример кода сортировки методом пузырька:
public static void bubbleSort(int[] arr) {
int n = arr.length;
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
// Обмен элементов
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
Пример использования:
int[] arr = {64, 34, 25, 12, 22, 11, 90};
بوبليسورت (آر آر);
النظام.خارج.برينتلن ("مصفوفة مرتبة:" + صفائف.توسترينغ (آر));
النتيجة:
مصفوفة مرتبة: [11, 12, 22, 25, 34, 64, 90]
فقاعة الفرز هو خوارزمية بسيطة ومباشرة ، ولكن لديه تعقيد س(ن^2) ، مما يجعلها غير فعالة للمصفوفات الكبيرة. ومع ذلك ، قد يكون استخدامه مبررا للمصفوفات الصغيرة أو المصفوفات التي تم فرزها بالفعل تقريبا.
الفرز حسب طريقة الاختيار
واحدة من أسهل الطرق لفرز مجموعة من الأرقام في جافا هي استخدام طريقة التحديد. تتمثل هذه الطريقة في العثور على أكبر (أو أصغر) عنصر في المصفوفة ونقله إلى الموضع المطلوب.
إليك كيف يتم ذلك:
- نذهب من خلال جميع عناصر المصفوفة.
- نجد أكبر (أو أصغر) عنصر في الجزء المتبقي من المصفوفة.
- تبديل العنصر الحالي بالعنصر الأكبر (أو الأصغر) الموجود.
- كرر الخطوات من 2 إلى 3 للعناصر المتبقية من المصفوفة.
نتيجة لهذا التسلسل من الخطوات ، سيتم نقل أكبر عنصر إلى نهاية المصفوفة ، وهو التالي الأكبر إلى الموضع قبل الأخير ، وهكذا حتى يتم فرز المصفوفة.
يوجد أدناه مثال على كود جافا الذي يوضح الفرز حسب طريقة التحديد:
اختيار الفئة العامة {
العامة ثابت الفراغ الرئيسي (سلسلة[] الحجج) {
int[] array = {29, 10, 14, 37, 13};
for (int i = 0; i < array.length - 1; i++) {
int minIndex = i;
for (int j = i + 1; j < array.length; j++) {
if (array[j] < array[minIndex]) {
minIndex = j;
}
}
int temp = array[i];
array[i] = array[minIndex];
array[minIndex] = temp;
}
for (int element : array) {
System.out.print(element + " ");
}
}
}
В результате выполнения данного кода на экране будет выведен отсортированный массив: 10 13 14 29 37.
اختيار الفرز هو خوارزمية بسيطة ومباشرة ، ولكن لديه تعقيد الوقت أعلى قليلا من بعض أساليب الفرز الأخرى. ومع ذلك ، يمكن أن يكون مفيدا في الحالات التي تحتاج فيها إلى فرز المصفوفات الصغيرة أو عندما تكون بساطة الكود مهمة.
الفرز حسب طريقة الإدراج
يعد فرز الإدراج أحد أبسط خوارزميات الفرز. تقوم هذه الخوارزمية بفرز المصفوفة عن طريق إدخال عناصر في المواضع الصحيحة. وهو فعال للمصفوفات الصغيرة أو المصفوفات التي تم فرزها جزئيا بالفعل.
يمكن تمثيل خوارزمية فرز الإدراج على النحو التالي:
- خذ العنصر الأول من المصفوفة واعتبره مصنفا بالفعل.
- خذ العنصر التالي وقارنه بجميع العناصر الموجودة بالفعل في الجزء المصنف من المصفوفة. انقل العناصر الأكبر من العنصر المحدد إلى اليمين.
- Повторять шаг 2 для каждого элемента до тех пор, пока не пройдет весь массив.
Пример кода на языке Java, реализующий сортировку методом вставки:
إنت [] آر = { 5, 2, 10, -1, 4, 6 };
فرز (آر);
النظام.خارج.طباعة (الأسطوانات + " ");
}
}
}
ستكون نتيجة الإخراج لتنفيذ هذا الرمز كما يلي:
-1 2 4 5 6 10
أمثلة على رمز فرز الصفيف
في جافا ، هناك عدة طرق مختلفة لفرز مجموعة من الأرقام. دعونا ننظر إلى بعض منهم:
1. المصفوفات.طريقة الفرز ()
المصفوفات.فرز()
من عند
جافا.حزمة أوتيل
يسمح لك بفرز عناصر المصفوفة بترتيب طبيعي أو باستخدام مقارنة محددة. لاستخدام هذه الطريقة ، يجب عليك تمرير مصفوفة كوسيطة.
استيراد جافا.أوتيل.صفائف;
الطبقة العامة الرئيسية {
العامة ثابت الفراغ الرئيسي (سلسلة[] الحجج) {
كثافة العمليات [] صفيف = {5, 2, 8, 1, 3};
المصفوفات.فرز (صفيف);
النظام.خارج.برينتلن (صفائف.توسترينغ (صفيف));
}
}
الناتج:
[1, 2, 3, 5, 8]
2. المصفوفات.طريقة المتوازي ()
المصفوفات.المتوازي()
يسمح لك أيضا بفرز عناصر المصفوفة ، ولكنه يعمل بالتوازي مع العديد من نوى المعالج. لاستخدامها ، تحتاج إلى تمرير صفيف كوسيطة.
استيراد جافا.أوتيل.صفائف;
الطبقة العامة الرئيسية {
العامة ثابت الفراغ الرئيسي (سلسلة[] الحجج) {
كثافة العمليات [] صفيف = {5, 2, 8, 1, 3};
المصفوفات.المتوازي (صفيف);
النظام.خارج.برينتلن (صفائف.توسترينغ (صفيف));
}
}
الناتج:
[1, 2, 3, 5, 8]
3. خوارزمية فرز الفقاعات
تفترض خوارزمية فرز الفقاعة مقارنة متسلسلة لأزواج العناصر المجاورة وتبادلها في حال كانت بترتيب خاطئ. Процесс повторяется до тех пор, пока массив не будет полностью отсортирован.
public class Main {
public static void main(String[] args) {
int[] array = {5, 2, 8, 1, 3};
for (int i = 0; i < array.length - 1; i++) {
for (int j = 0; j < array.length - i - 1; j++) {
if (array[j] > array[j + 1]) {
int temp = array[j];
array[j] = array[j + 1];
array[j + 1] = temp;
}
}
}
for (int i = 0; i < array.length; i++) {
System.out.print(array[i] + " ");
}
}
}
Вывод:
1 2 3 5 8
4. Алгоритм сортировки выбором
تتضمن خوارزمية فرز التحديد إيجاد الحد الأدنى (أو الحد الأقصى) لعنصر المصفوفة ووضعه في بداية (أو نهاية) الجزء المصنف من المصفوفة. ثم تتكرر هذه العملية للعناصر المتبقية.
الطبقة العامة الرئيسية {