Download as pdf or txt
Download as pdf or txt
You are on page 1of 6

‫خوارزميات نظري‬ ‫السنة الثانية‬ ‫جامعة حلب‬

‫م‪ .‬دعاء مصري‬ ‫قسم الربجميات‬ ‫املعد التقاين للحاسوب‬

‫المحاضرة الخامسة‬
‫اٌتشت‪١‬ت أ‪ ٚ‬اٌفشص ‪Sorting‬‬
‫ٔحتبج ف‪ ٟ‬اٌح‪١‬بح اٌ‪١ِٛ١‬خ إٌ‪ ٝ‬تشت‪١‬ت أ‪ ٚ‬فشص اٌعذ‪٠‬ذ ِٓ اٌش‪١‬بء ‪ :‬ف‪ٛ‬ات‪١‬ش‪ ،‬عٍت‪ ...‬اٌخ ‪ ٚ ،‬إعبدح تشت‪١‬ج‪ٙ‬ب تجعب ً ‪١ٌ٢‬خ‬
‫ِع‪ٕ١‬خ‪.‬‬
‫ٕ٘بن اٌعذ‪٠‬ذ ِٓ خ‪ٛ‬اسصِ‪١‬بد اٌفشص ‪ ٚ‬اٌتشت‪١‬ت ‪ ٚ‬أش‪ٙ‬ش٘ب اٌت‪ ٟ‬تعتّذ عٍ‪ِ ٝ‬جذأ اٌتمس‪ٚ ُ١‬اٌت‪ٛ‬ح‪١‬ذ ح‪١‬ث ٕ٘بن اٌعذ‪٠‬ذ‬
‫ِٓ طشق اٌتمس‪ِ ُ١‬ثً‪:‬‬

‫اٌفشص ثبٌذِح ‪( Merge Sort‬سٕتعشف عٍ‪ ٗ١‬ف‪٘ ٟ‬زٖ اٌدٍسخ)‪.‬‬


‫اٌفشص اٌسش‪٠‬ع ‪٠( Quick Sort‬فشص اٌمبئّخ إٌ‪ ٝ‬ل‪ ُ١‬وج‪١‬شح ‪ٚ‬ل‪ ُ١‬صغ‪١‬شح)‬

‫وّب ٕ٘بن خ‪ٛ‬اسصِ‪١‬بد تختبس اٌحً األفضً ف‪ ٟ‬اٌتشت‪١‬ت ِثً اٌفشص اٌتى‪Heap Sort ّٟ٠ٛ‬‬
‫‪ٕ٘ٚ‬بن خ‪ٛ‬اصِ‪١‬بد فشص س‪ٍٙ‬خ ‪ٌٚ‬ىٕ‪ٙ‬ب ثط‪١‬ئخ ٔسج‪١‬ب ً ِثً خ‪ٛ‬اسصِ‪١‬خ اٌفشص اٌفمبع‪ ( Bubble Sort ٟ‬تمبسْ وً ل‪ّ١‬خ‬
‫ِع وً اٌم‪ ) ُ١‬أ‪ ٚ‬اٌفشص ثبٌضُ ‪( Insertion Sort‬ح‪١‬ث ‪٠‬ؤشش عٍ‪ ٝ‬عذد ِع‪٠ٚ ٓ١‬تُ اٌضُ لجٍٗ أ‪ ٚ‬ثعذٖ)‪.‬‬
‫‪ٌٕٚ‬ش‪ ٜ‬ا‪ ْ٢‬خ‪ٛ‬اسصِ‪١‬خ اٌفشص ثبٌذِح اٌت‪ ٟ‬تستخذَ األسٍ‪ٛ‬ة اٌتعب‪ٚ‬د‪.ٞ‬‬

‫ِسأٌخ اٌفشص ثبٌذِح ‪:Merge Sort‬‬


‫ٌ‪١‬ىٓ ٌذ‪ٕ٠‬ب خذ‪ٚ‬ي ‪ T‬ثذا‪٠‬تٗ ‪ٙٔٚ low‬ب‪٠‬تٗ ‪٠ High‬حت‪٘ ٞٛ‬زا اٌدذ‪ٚ‬ي عٍ‪ ٝ‬أعذاد غ‪١‬ش ِشتجخ ٔش‪٠‬ذ تشت‪١‬ج‪ٙ‬ب تشت‪١‬جب ً‬
‫تصبعذ‪٠‬بً‪.‬تتٍخص اٌطش‪٠‬مخ ثأْ ٔمسُ اٌدذ‪ٚ‬ي إٌ‪ ٝ‬خذ‪ ٓ١ٌٚ‬خضئ‪ٔٚ ٓ١١‬شتت وً خذ‪ٚ‬ي عٍ‪ ٝ‬حذ‪ ٜ‬ثُ ٔع‪١‬ذ دِد‪ّٙ‬ب ف‪ٟ‬‬
‫خذ‪ٚ‬ي ِشتت ‪ٚ‬احذ‪.‬‬

‫عٍّخ تشت‪١‬ت اٌدذ‪ٚ‬ي اٌدضئ‪ ٟ٘ ٟ‬تطج‪١‬ك ٌٕفس اٌطش‪٠‬مخ اٌسبثمخ (تعب‪ٚ‬د‪٠‬خ) ح‪١‬ث تستّش عٍّ‪١‬خ اٌتمس‪ ُ١‬إٌ‪ ٝ‬خذا‪ٚ‬ي‬
‫خضئ‪١‬خ حت‪ٔ ٝ‬صً ثبٌتمس‪ ُ١‬إٌ‪ِ ٝ‬شحٍخ ال ‪ّ٠‬ىٓ تمس‪ ُ١‬اٌدذ‪ٚ‬ي إٌ‪ ٝ‬خذ‪ ٚ ٓ١ٌٚ‬رٌه عٕذِب ‪٠‬صجح اٌدذ‪ٚ‬ي ِؤٌف ِٓ‬
‫خبٔخ ‪ٚ‬احذح ( ٕ٘ب تى‪ٚ ) Low = High ْٛ‬ثزٌه ٔى‪ ْٛ‬لذ ‪ٚ‬صٍٕب إٌ‪ ٝ‬اٌحبٌخ اٌم‪١‬بس‪١‬خ فٕذِح اٌدذ‪ ٓ١ٌٚ‬اٌدضئ‪ٓ١١‬‬
‫ثشىً ِشتت (ٔشتت أثٕبء اٌذِح)‪.‬‬

‫خ‪ٛ‬اسصِ‪١‬خ اٌفشص ثبٌذِح ‪:‬‬

‫‪ -‬طبٌّب إٔٔب ٌُ ٔصً إٌ‪ ٝ‬خذ‪ٚ‬ي ِؤٌف ِٓ خبٔخ ‪ٚ‬احذح ( أ‪ ٞ‬طبٌّب ‪:) Low!=High‬‬

‫)‪.‬‬ ‫‪mid=(low+high)/2‬‬ ‫( ح‪١‬ث‬ ‫‪ٔ -1‬حست ِٕتصف اٌدذ‪ٚ‬ي ‪mid‬‬

‫‪.‬‬ ‫‪ٔ -2‬شتت اٌدذ‪ٚ‬ي اٌدضئ‪ ٟ‬األ‪ٚ‬ي )‪T(low..mid‬‬

‫‪ٔ -3‬شتت اٌدذ‪ٚ‬ي اٌدضئ‪ ٟ‬اٌثبٔ‪. T(mid+1..High) ٟ‬‬

‫‪ٔ -4‬ذِح اٌدذ‪ ٓ١ٌٚ‬اٌدضئ‪ ٓ١١‬اٌّشتج‪ ٓ١‬ف‪ ٟ‬خذ‪ٚ‬ي ‪ٚ‬احذ ثشىً ِشتت (ح‪١‬ث ‪٠‬تُ اٌتشت‪١‬ت أثٕبء اٌذِح) فٕحصً عً‬
‫خذ‪ٚ‬ي ِشتت )‪. T(low..mid..high‬‬

‫‪1‬‬
‫خوارزميات نظري‬ ‫السنة الثانية‬ ‫جامعة حلب‬
‫م‪ .‬دعاء مصري‬ ‫قسم الربجميات‬ ‫املعد التقاين للحاسوب‬

‫أِثٍخ‪:‬‬
‫ِثبي ‪2‬‬ ‫ِثبي ‪1‬‬

‫ِثبي ‪2‬‬

‫ِثبي ‪3‬‬

‫‪2‬‬
‫خوارزميات نظري‬ ‫السنة الثانية‬ ‫جامعة حلب‬
‫ دعاء مصري‬.‫م‬ ‫قسم الربجميات‬ ‫املعد التقاين للحاسوب‬

:‫اٌجشٔبِح ثٍغخ اٌدبفب‬

import java.util.Scanner;

public class MergeSort

final static int n = 8;

public static void merge(int low, int mid, int high, int[] t)

int i, j, k;

int[] aux = new int [8];

i = low;

k = low;

j = mid +1;

while ((i <= mid) && (j <=high))

if (t[i] < t[j])

aux[k] = t[i];

k++;

i++;

else if (t[i] > t[j])

aux [k] = t[j];

3
‫خوارزميات نظري‬ ‫السنة الثانية‬ ‫جامعة حلب‬
‫م‪ .‬دعاء مصري‬ ‫قسم الربجميات‬ ‫املعد التقاين للحاسوب‬

‫;‪k++‬‬

‫;‪j++‬‬

‫}‬

‫]‪else // t[i] == t[j‬‬

‫{‬

‫;]‪aux[k] = t[i‬‬

‫;]‪aux [k+1] = t[j‬‬

‫;‪k = k+2‬‬

‫;‪i++‬‬

‫;‪j++‬‬

‫}‬

‫}‬

‫)‪while (i <= mid‬‬

‫{‬

‫;]‪aux[k] = t[i‬‬

‫;‪k++‬‬

‫;‪i++‬‬

‫}‬

‫)‪while (j <= high‬‬

‫{‬

‫;]‪aux[k] = t[j‬‬

‫;‪k++‬‬

‫;‪j++‬‬

‫‪4‬‬
‫خوارزميات نظري‬ ‫السنة الثانية‬ ‫جامعة حلب‬
‫ دعاء مصري‬.‫م‬ ‫قسم الربجميات‬ ‫املعد التقاين للحاسوب‬

i = low;

while (i <= high)

t[i] = aux[i];

i++;

public static void mergeSort(int low, int high, int[] t)

int mid;

if (low != high)

mid = (low + high) / 2;

mergeSort(low, mid, t);

mergeSort(mid+1, high, t);

merge(low, mid, high, t);

public static void main(String[] args)

Scanner input = new Scanner(System.in);

int[] tv = new int [8];

5
‫خوارزميات نظري‬ ‫السنة الثانية‬ ‫جامعة حلب‬
‫ دعاء مصري‬.‫م‬ ‫قسم الربجميات‬ ‫املعد التقاين للحاسوب‬

int i;

int x;

for (i = 0; i < n; i++)

x = input.nextInt();

tv[i] = x;

mergeSort(0, n-1, tv);

System.out.println("after Sort");

for (i = 0; i < n; i++)

System.out.println(tv[i] + " ");

System.out.println();

‫نهاية المحاضرة الخامسة‬

You might also like