CodeGym /جاوا بلاگ /Random-SD /جاوا ۾ ترتيب کي ضم ڪريو
John Squirrels
سطح
San Francisco

جاوا ۾ ترتيب کي ضم ڪريو

گروپ ۾ شايع ٿيل

ضم ڪرڻ جي ترتيب ڇا آهي؟

ضم ڪرڻ جي ترتيب سڀ کان عام الگورٿم آهي ڊيٽا کي ترتيب ڏيڻ لاءِ ” تقسيم ۽ فتح “ ٽيڪنڪ استعمال ڪندي. هن الگورتھم ۾، مسئلي کي ذيلي مسئلن ۾ ورهايو ويو آهي ۽ پوء ترتيب ڏيڻ کان پوء انهن کي گڏ ڪيو ويندو آهي. اچو ته اسان کي چئو ته اسان وٽ اڻ ترتيب ڏنل انگن جي هڪ فهرست آهي، هڪ خاص مضمون لاءِ ڪلاس جو نتيجو. انھن کي ترتيب ڏيڻ جي ترتيب سان ترتيب ڏيڻ لاء اسان کي انھن کي ھڪڙي فهرست ۾ رکڻ جي ضرورت پوندي جيڪا گھٽ کان مٿاھين تائين شروع ٿيندي. هن ضم جي ترتيب واري الگورتھم ۾، فهرست کي ننڍين لسٽن ۾ ورهايو ويندو ته جيئن انهن کي هڪ وڌندي ترتيب ۾ ترتيب ڏيو ۽ پوءِ اهو بهتر سمجهڻ لاءِ نتيجن کي ضم ڪندو. جاوا ۾ ضم ڪرڻ جي ترتيب کي هڪ صف جي مثال ذريعي وضاحت ڪري سگهجي ٿو {6,9,8,2,4,1}، ان کي 10 مان ڪلاس ٽيسٽ جي نتيجي طور سمجهيو. صف (نتيجن جو) بار بار ورهايو ويندو ننڍن ٽڪرن ۾ جيستائين انهن جي سائيز 1 نه ٿي وڃي. پوء ضم ٿيڻ جو عمل ٿئي ٿو جڏهن انگن کي ترتيب ڏيو. اهو اسان کي هڪ نتيجو فراهم ڪندو، جيڪو حاصل ڪيل سڀ کان گهٽ مارڪن کان وٺي بلند ترين نشانن سان شروع ٿئي ٿو. جاوا ۾ ترتيب ڏيو - 1هي صف ٻن صفن ۾ ورهائجي ويندي جنهن ۾ 3 عنصر شامل هوندا هر هڪ ۾ جيئن هيٺ ڏنل قدم 2 ۾ ڏيکاريل آهي ۽ اهو ورهائيندو رهندو جيستائين اتحاد 4 ۾ پهچي وڃي . پوءِ ضم ڪرڻ جو الگورتھم انگن کي ترتيب ڏيڻ شروع ڪري ٿو ھڪڙي وقت ھڪڙي قدم ( قدم 5 ) ۽ پوءِ انگن کي ضم ڪري ھڪڙي وڏي صف ۾ قدم 6 ۽ 7 ۾ .

عمل درآمد

عملدرآمد ۾ اسان جاوا ۾ ضم ڪرڻ واري الگورتھم لاءِ ڪوڊ لکنداسين. متغير گهربل هوندا ان پٽ صف ۽ صف جي ڊيگهه. اهي ٻه پيرا ميٽرز وڌيڪ استعمال ڪيا ويندا وڌيڪ پيرا ميٽر متعارف ڪرائڻ لاءِ ضم ڪرڻ جي ترتيب واري فنڪشن کي. اچو ته جاوا ۾ مرج ترتيب الورورٿم جي عام ڪم کي سمجهڻ لاءِ هيٺ ڏنل ٽڪڙي تي هڪ نظر وجهون.
Merge_Sort_Algo (Array, Beginning, End)
/** Three parameters required for the Merge Sort Algorithm
 * Array = values of the array
 * Beginning = the starting element of the array
 * End = the ending element of the array*/

if (Beginning < End) // condition check Beginning must be less than End

set Middle = (Beginning + End) / 2 // Assigning Middle to the array

Merge_Sort_Algo (Array, Beginning, Middle) /** Sorting and merging of elements from Beginning to the Middle */

Merge_Sort_Algo (Array, Middle +1, End) /** Sorting and merging of elements from Middle to the End */

Merge (Array, Beginning, Middle, End) // Merging both the sorted arrays

end of if

End Merge_Sort_Algo
پهرين ذريعي if حالت جي شروعات ۽ پڇاڙي وچين کي طئي ڪرڻ لاءِ استعمال ٿينديون آهن. ان کان پوء ايندڙ قدم ۾، 2 نوان سبارري ٺاهيا ويا آهن شروع کان شروع کان وچ تائين ۽ ٻيو شروع ٿيندڙ وچ +1 کان آخر تائين. اهي صفون ورهائجن ٿيون جيستائين انهن جي ڊگھائي 1 ٿي وڃي ۽ پوءِ مرج فنڪشن ذريعي ترتيب ڏنل ذيلي ذيلي سرن جي شروعات، وچ، وچ + 1 ۽ آخر سڀني کي ٻيهر ضم ڪيو وڃي ٿو حل حاصل ڪرڻ لاءِ.

مثال

جاوا ۾ هيٺ ڏنل ڪوڊ وضاحت ڪري ٿو ضم جي ترتيب واري الگورتھم:
import java.util.Arrays;

class HelloWorld {

    public static void merge(

  int[] array, int[] new_array_1, int[] new_array_2, int left, int right) {
   // defining parameters

    int i = 0, j = 0, k = 0;

    while (i < left && j < right) {  // conditions for merging

        if (new_array_1[i] <= new_array_2[j]) {
            array[k++] = new_array_1[i++];
        }
        else {
            array[k++] = new_array_2[j++];
        }
    }

    while (i < left) {
        array[k++] = new_array_1[i++];
    }

    while (j < right) {
        array[k++] = new_array_2[j++];
    }
}

    public static void mergeSort(int[] array, int length) { /** required parameters */
	if (length < 2) {  //condition for the length of array
    	return;
	}

	int middle = length / 2;  // defining new parameter middle

	int [ ] new_array_1 = new int [middle]; /** defining the new first array after division */
	int [ ] new_array_2 = new int [length - middle]; /** defining the new second array */


	for (int i = 0; i < middle; i++) { /**applying condition for sorting of new array 1 */
    	new_array_1 [ i ] = array [ i ];
	}

	for (int i = middle; i < length ; i++) { /**applying condition for sorting of new array 2 */
    	new_array_2 [ i - middle] = array [ i ];
	}

	mergeSort (new_array_1, middle); /** calling merge sort function for new array 1 */
	mergeSort (new_array_2, length - middle); /** calling merge sort function for new array 2 */


	merge(array, new_array_1, new_array_2, middle, length - middle); /** calling function for merging of new array 1 and new array 2 */
}


    public static void main(String[] args) {

        int [ ] testScores = {6,9,8,2,4,1};
        int size = testScores.length;

        System.out.println("Original Array " + Arrays.toString(testScores) + "\n");

        mergeSort(testScores, size);

        System.out.println("After Merge Sort " + Arrays.toString(testScores) + "\n");
    }
}

پيداوار

اصل صف [6, 9, 8, 2, 4, 1] ضم ٿيڻ کان پوءِ ترتيب [1, 2, 4, 6, 8, 9]

نتيجو

جاوا ۾ ضم ٿيل ترتيب نمبرن جي اڻ ترتيب ڏنل فهرست مان ترتيب ڏنل فهرست حاصل ڪرڻ لاءِ هڪ سادي الگورتھم آهي. ' ورهايو ۽ فتح ڪريو ' جو بنيادي طريقو اڻ ترتيب ڏنل صف مان ترتيب ڏنل صف تائين رسائي لاءِ لاڳو ڪيو ويندو آهي.
تبصرا
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION