forked from txs72/JavaTutorial
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMergeSort.java
More file actions
executable file
·59 lines (57 loc) · 1.93 KB
/
MergeSort.java
File metadata and controls
executable file
·59 lines (57 loc) · 1.93 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
/* */ package ch32;
/* */
/* */ public class MergeSort
/* */ {
/* */ public static void mergeSort(int[] list) {
/* 6 */ if (list.length > 1) {
/* */
/* 8 */ int[] firstHalf = new int[list.length / 2];
/* 9 */ System.arraycopy(list, 0, firstHalf, 0, list.length / 2);
/* 10 */ mergeSort(firstHalf);
/* */
/* */
/* 13 */ int secondHalfLength = list.length - list.length / 2;
/* 14 */ int[] secondHalf = new int[secondHalfLength];
/* 15 */ System.arraycopy(list, list.length / 2, secondHalf, 0, secondHalfLength);
/* */
/* 17 */ mergeSort(secondHalf);
/* */
/* */
/* 20 */ merge(firstHalf, secondHalf, list);
/* */ }
/* */ }
/* */
/* */
/* */ public static void merge(int[] list1, int[] list2, int[] temp) {
/* 26 */ int current1 = 0;
/* 27 */ int current2 = 0;
/* 28 */ int current3 = 0;
/* */
/* 30 */ while (current1 < list1.length && current2 < list2.length) {
/* */
/* */
/* 33 */ if (list1[current1] < list2[current2]) {
/* 34 */ temp[current3++] = list1[current1++]; continue;
/* */ }
/* 36 */ temp[current3++] = list2[current2++];
/* */ }
/* */
/* 39 */ while (current1 < list1.length) {
/* 40 */ temp[current3++] = list1[current1++];
/* */ }
/* 42 */ while (current2 < list2.length) {
/* 43 */ temp[current3++] = list2[current2++];
/* */ }
/* */ }
/* */
/* */ public static void main(String[] args) {
/* 48 */ int[] list = { 2, 3, 2, 5, 6, 1, -2, 3, 14, 12 };
/* 49 */ mergeSort(list);
/* 50 */ for (int i = 0; i < list.length; i++)
/* 51 */ System.out.print(list[i] + " ");
/* */ }
/* */ }
/* Location: /Volumes/TXS.128G/hope useful/practice/2020.jar!/ch32/MergeSort.class
* Java compiler version: 8 (52.0)
* JD-Core Version: 1.1.3
*/