CodeGym /ื‘ืœื•ื’ Java /Random-HE /ืžื™ื–ื•ื’ ืžื™ื•ืŸ ื‘-Java
John Squirrels
ืจึธืžึธื”
San Francisco

ืžื™ื–ื•ื’ ืžื™ื•ืŸ ื‘-Java

ืคื•ืจืกื ื‘ืงื‘ื•ืฆื”

ืžื” ื–ื” ืžื™ื•ืŸ ืžื™ื–ื•ื’?

ืžื™ื•ืŸ ื”ืžื™ื–ื•ื’ ื”ื•ื ื”ืืœื’ื•ืจื™ืชื ื”ื ืคื•ืฅ ื‘ื™ื•ืชืจ ืœืžื™ื•ืŸ ื ืชื•ื ื™ื ื‘ื˜ื›ื ื™ืงืช " ื”ืคืจื“ ื•ื›ื‘ื•ืฉ ". ื‘ืืœื’ื•ืจื™ืชื ื–ื”, ื”ื‘ืขื™ื” ืžื—ื•ืœืงืช ืœืชืช-ื‘ืขื™ื•ืช ื•ืœืื—ืจ ืžื›ืŸ ืœืื—ืจ ื”ืžื™ื•ืŸ ื”ืŸ ืžืชืžื–ื’ื•ืช ื™ื—ื“. ื ื ื™ื— ืฉื™ืฉ ืœื ื• ืจืฉื™ืžื” ืฉืœ ืžืกืคืจื™ื ืœื ืžืžื•ื™ื ื™ื, ืชื•ืฆืื” ืฉืœ ืฉื™ืขื•ืจ ืœื ื•ืฉื ืžืกื•ื™ื. ื›ื“ื™ ืœืžื™ื™ืŸ ืื•ืชื ืœืคื™ ืกื“ืจ ืขื•ืœื” ื ืฆื˜ืจืš ืœืžืงื ืื•ืชื ื‘ืจืฉื™ืžื” ืฉืžืชื—ื™ืœื” ืžื ืžื•ืš ืœื’ื‘ื•ื”. ื‘ืืœื’ื•ืจื™ืชื ืžื™ื•ืŸ ืžื™ื–ื•ื’ ื–ื”, ื”ืจืฉื™ืžื” ืชื—ื•ืœืง ืœืจืฉื™ืžื•ืช ืงื˜ื ื•ืช ื™ื•ืชืจ ื›ื“ื™ ืœืžื™ื™ืŸ ืื•ืชืŸ ื‘ืกื“ืจ ืขื•ืœื” ื•ืื– ื”ื™ื ืชืžื–ื’ ืืช ื”ืชื•ืฆืื•ืช ืœื”ื‘ื ื” ื˜ื•ื‘ื” ื™ื•ืชืจ. ื ื™ืชืŸ ืœื”ืกื‘ื™ืจ ืžื™ื–ื•ื’ ืžื™ื•ืŸ ื‘-Java ื‘ืืžืฆืขื•ืช ื“ื•ื’ืžื” ืฉืœ ืžืขืจืš {6,9,8,2,4,1}, ืฉืงื•ืœ ืื•ืชื• ื›ืชื•ืฆืื” ืžืžื‘ื—ืŸ ืžื—ืœืงื” ืžืชื•ืš 10. ื”ืžืขืจืš (ืฉืœ ื”ืชื•ืฆืื•ืช) ื™ื—ื•ืœืง ืฉื•ื‘ ื•ืฉื•ื‘ ืœื ืชื—ื™ื ืงื˜ื ื™ื ื™ื•ืชืจ ืขื“ ืฉื’ื•ื“ืœื ื”ื•ื 1. ืœืื—ืจ ืžื›ืŸ ืžืชืจื—ืฉ ืชื”ืœื™ืš ื”ืžื™ื–ื•ื’ ืชื•ืš ืžื™ื•ืŸ ื”ืžืกืคืจื™ื ื‘ื• ื–ืžื ื™ืช. ื–ื” ื™ืกืคืง ืœื ื• ืชื•ืฆืื” ืฉืžืชื—ื™ืœื” ืžื”ืฆื™ื•ื ื™ื ื”ื ืžื•ื›ื™ื ื‘ื™ื•ืชืจ ื•ืขื“ ืœืฆื™ื•ื ื™ื ื”ื’ื‘ื•ื”ื™ื ื‘ื™ื•ืชืจ ืฉื”ืชืงื‘ืœื•. ืžื™ื–ื•ื’ ืžื™ื•ืŸ ื‘-Java - 1ืžืขืจืš ื–ื” ื™ื—ื•ืœืง ืœืฉื ื™ ืžืขืจื›ื™ื ืฉื™ื›ื™ืœื• 3 ืืœืžื ื˜ื™ื ื›ืœ ืื—ื“ ื›ืคื™ ืฉืžื•ืฆื’ ืœื”ืœืŸ ื‘ืฉืœื‘ 2 ื•ื”ื•ื ืžืžืฉื™ืš ืœื”ืชื—ืœืง ืขื“ ืฉืžื’ื™ืขื™ื ืœืื—ื“ื•ืช ื‘ืฉืœื‘ 4 . ืœืื—ืจ ืžื›ืŸ, ืืœื’ื•ืจื™ืชื ื”ืžื™ื–ื•ื’ ืžืชื—ื™ืœ ืœืžื™ื™ืŸ ืืช ื”ืžืกืคืจื™ื ืฆืขื“ ืื—ื“ ื‘ื›ืœ ืคืขื ( ืฉืœื‘ 5 ) ื•ืœืื—ืจ ืžื›ืŸ ืžืžื–ื’ ืืช ื”ืžืกืคืจื™ื ืœืžืขืจืš ื’ื“ื•ืœ ื™ื•ืชืจ ื‘ืฉืœื‘ื™ื 6 ื•-7 .

ื™ื™ืฉื•ื

ื‘ื™ื™ืฉื•ื ื ื›ืชื•ื‘ ืงื•ื“ ืœืืœื’ื•ืจื™ืชื ื”ืžื™ื–ื•ื’ ื‘-Java. ื”ืžืฉืชื ื™ื ื”ื ื“ืจืฉื™ื ื™ื”ื™ื• ืžืขืจืš ื”ืงืœื˜ ื•ืื•ืจืš ื”ืžืขืจืš. ืฉื ื™ ืคืจืžื˜ืจื™ื ืืœื• ื™ืฉืžืฉื• ืขื•ื“ ื›ื“ื™ ืœื”ืฆื™ื’ ืคืจืžื˜ืจื™ื ื ื•ืกืคื™ื ืœื™ืฆื™ืจืช ืคื•ื ืงืฆื™ื™ืช ื”ืžื™ื–ื•ื’. ื‘ื•ืื• ื ืกืชื›ืœ ืขืœ ื”ืงื˜ืข ืœืžื˜ื” ื›ื“ื™ ืœื”ื‘ื™ืŸ ืืช ื”ืขื‘ื•ื“ื” ื”ื›ืœืœื™ืช ืฉืœ ืืœื’ื•ืจื™ืชื ื”ืžื™ื–ื•ื’ ื‘-Java.
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
ืจืืฉื™ืช, ื“ืจืš ื”ืชื ืื™ ืื ื”ืชื—ืœื” ื•ืกื•ืฃ ืžืฉืžืฉื™ื ืœืงื‘ื™ืขืช ื”ืืžืฆืข. ื•ืื– ื‘ืฉืœื‘ ื”ื‘ื ื ื•ืฆืจื™ื 2 ืชืช-ืžืขืจื›ื™ื ื—ื“ืฉื™ื ื”ื—ืœ ืžื”ื”ืชื—ืœื” ืœืืžืฆืข ื•ื”ืฉื ื™ ืžืชื—ื™ืœ ืžื”ืืžืฆืข +1 ืขื“ ื”ืกื•ืฃ. ืžืขืจื›ื™ื ืืœื• ืžื—ื•ืœืงื™ื ืขื“ ืฉืื•ืจื›ื ื”ื•ืคืš ืœ-1 ื•ืื– ื“ืจืš ืคื•ื ืงืฆื™ื™ืช ื”ืžื™ื–ื•ื’ ืžืชืžื–ื’ื™ื ื‘ื—ื–ืจื” ืืช ืžืขืจื›ื™ ื”ืžืฉื ื” ื”ืžืžื•ื™ื ื™ื Beginning, Middle, Middle+1 ื•-End ื›ื“ื™ ืœืจื›ื•ืฉ ืืช ื”ืคืชืจื•ืŸ.

ื“ื•ื’ืžื

ื”ืงื•ื“ ื”ื‘ื ื‘-Java ืžืกื‘ื™ืจ ืืช ืืœื’ื•ืจื™ืชื ืžื™ื•ืŸ ื”ืžื™ื–ื•ื’:
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]

ืกื™ื›ื•ื

ืžื™ื–ื•ื’ ืžื™ื•ืŸ ื‘-Java ื”ื•ื ืืœื’ื•ืจื™ืชื ืคืฉื•ื˜ ืœืจื›ื™ืฉืช ืจืฉื™ืžื” ืžืžื•ื™ื ืช ืžืจืฉื™ืžื” ืœื ืžืžื•ื™ื ืช ืฉืœ ืžืกืคืจื™ื. ื”ืฉื™ื˜ื” ื”ื‘ืกื™ืกื™ืช ืฉืœ ' ื—ืœืง ื•ื›ื‘ื•ืฉ ' ืžื™ื•ืฉืžืช ื›ื“ื™ ืœื’ืฉืช ืœืžืขืจืš ื”ืžืžื•ื™ืŸ ืžืžืขืจืš ืœื ืžืžื•ื™ืŸ.
ื”ืขืจื•ืช
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION