Run Code
|
API
|
Code Wall
|
Misc
|
Feedback
|
Login
|
Theme
|
Privacy
|
Patreon
sortArraymerge
import java.util.*; import java.lang.*; class Rextester { public static int[] a = {19, 7, 6, 15, 2, 6, 2, 4, 8, 16}; public static void merge(int begin, int end, String way) { int mid = (begin + end) / 2; int size1 = mid - begin + 1; int size2 = end - mid; int[] t1 = new int[size1]; int[] t2 = new int[size2]; int[] arrTotal = new int[size1 + size2]; for (int i = 0; i < size1; i++) { t1[i] = a[i + begin]; } for (int i = 0; i < size2; i++) { t2[i] = a[i + mid + 1]; } System.out.println(way + "t1= " + Arrays.toString(t1) + " t2= " + Arrays.toString(t2)); int index_1 = 0; int index_2 = 0; int index_t = 0; while ((index_1 <= size1) || (index_2 <= size2)) { //в первом массиве закончились if (index_1 == size1) { while (index_2 < size2) { arrTotal[index_1 + index_2] = t2[index_2]; index_2++; } break; } //во втором массиве закончились if (index_2 == size2) { while (index_1 < size1) { arrTotal[index_1 + index_2] = t1[index_1]; index_1++; } break; } //в каждом из полумассивов остались элементы if (t2[index_2] > t1[index_1]) { arrTotal[index_1 + index_2] = t1[index_1]; index_1++; } else { arrTotal[index_1 + index_2] = t2[index_2]; index_2++; } } for (int i = 0; i < size1 + size2; i++) { a[i + begin] = arrTotal[i]; } System.out.println(way + "--Результат: " + Arrays.toString(arrTotal)); } public static void sort(int start, int finish, String way) { System.out.println(way + " Sort " + start + ".." + finish); if (start == finish) // выход из рекурсии - массив из 1 элемента отсортирован по определению return; int mid = (start + finish) / 2; // sort(start , mid, way + "| "); // сортировка 1-й половины массива sort(mid + 1, finish, way + "| "); // сортировка 2-й половины массива merge(start, finish, way + "| "); } public static void main(String args[]) { System.out.println(Arrays.toString(a)); // до сортировки sort(0, a.length - 1, ""); // сортировка System.out.println(Arrays.toString(a)); // после сортировки } }
run
|
edit
|
history
|
help
0
Municipiu_Problema_2_Palindrome
Compare Version Numbers
Problem 1 : New Wave Sale
Queue using linked list
1.5
combination sum (variation)
l
JavaQ5
HelloWorld2
Increment