الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مساعدة في الـ sorting

بدأه جوهرة الحياه في 24 أكتوبر 2011 · 0 رد · 302 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1

السلام عليكم ورحمة الله وبركاته

ما بطول في شرح المشكلة

عندي في الكود 2method للـ merge sort and quick sort

المخرجات للبرنامج ماتطلع صح

انا اعطيها مصفوفات وابغاها ترتبها بكلا النوعين وتطبعهم لي قبل وبعد الترتيب

فايش المشكلة في الكود لو تكرمتم

لان عندي زحمة اختبارات ومافي وقت ادقق في الكود واكتشف و و و ....

الله يعيطيكم الف عافيه مقدما

public class Main {
	static int array[] = new int [10];
	static int left=0 , right=array.length-1;

	public static void main(String[] args) {
		// initialize an array
		for (int i=0 ; i<10 ; i++)
		{
			array = ((int)(Math.random()*10));
			System.out.print(array+"  ");
		}

		// merge sort
		System.out.println("\nThe array after merge sort is:\n");
		MergeSort(array);

		System.out.println("\n================================");
		// re-initialize an array
		for (int i=0 ; i<10 ; i++)
		{
			array = ((int)(Math.random()*10));
			System.out.print(array+"  ");
		}
		// quick sort
		System.out.println("\nThe array after quick sort is:\n");
		QuickSort(array,left,right);

	}

	public static void MergeSort (int array[])
	{
		int x;
		if (array.length==1)
			System.out.println("end");
		else
		{
			x=(array.length/2);
			int A[] = new int [x];
			int B[] = new int [A.length-x];
			int C[] = new int [A.length + B.length];
			for (int i=0 ; i<x ; i++ )
			{
				A=array;
			}
			for (int i=0 ; i<B.length ; i++,x++ )
			{
				B=array[x];
			}
			Merge(A,B,C);
		}
	}

	public static void Merge (int[]A,int[]B, int[]C)
	{
		 int i, j, k, m, n; 
		 i = 0; 
		 j = 0; 
		 k = 0; 
		 m = A.length; 
		 n = B.length; 
		 while (i < m && j < n) 
		 { 
			 if (A <= B[j]) 
			 { 
				 C[k] = A; 
				 i++; 
			 } 
			 else 
			 { 
				 C[k] = B[j]; 
				 j++; 
			 } 
			 k++; 
	     } 
		 if (i < m)
		 { 
			 for (int p = i; p < m; p++)
			 { 
				 C[k] = Aبسم الله الرحمن الرحيم; 
				 k++; 
			 } 
		 }
		 else 
		 { 
			 for (int p = j; p < n; p++) 
			 { 
				 C[k] = Bبسم الله الرحمن الرحيم; 
				 k++; 
			 } 
	      }
		 for (int counter=0 ; counter<C.length ; counter++)
				System.out.print(C[counter] + "  ");
	}

	public static void QuickSort (int A[], int left, int right)
	{
		int index = partition(A, left, right); 
		if (left < index - 1) 
			QuickSort(A, left, index - 1); 
		if (index < right) 
			QuickSort(A, index, right);
		for (int counter=0 ; counter<A.length ; counter++)
			System.out.print(A[counter] + "  ");
	}

	public static int partition(int arr[], int left, int right) 
    { 
		int i = left, j = right; 
        int temp;
	    int pivot = arr[(left + right) / 2]; 
        while (i <= j) 
        { 
        	while (arr < pivot) 
        		i++; 
        	while (arr[j] > pivot) 
        		j--; 
            if (i <= j)
            { 
            	temp = arr; 
            	arr = arr[j]; 
                arr[j] = temp; 
                i++; 
                j--; 
            } 
        }
        return i;
	}



}

مواضيع مشابهة