Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package mergeSort;
- public class merge {
- static int zaehler = 0;
- public static int[] combine(int[] a, int[] b) {
- int[] c = new int[a.length + b.length];
- int i_a = 0;
- int i_b = 0;
- for (int i = 0; i < c.length; i++) {
- if (i_b < b.length && i_a < a.length) {
- if (a[i_a] <= b[i_b]) {
- c[i] = a[i_a];
- i_a++;
- }
- else {
- c[i] = b[i_b];
- i_b++;
- }
- }
- else if (i_b < b.length ) {
- c[i] = b[i_b];
- i_b++;
- }
- else {
- c[i] = a[i_a];
- i_a++;
- }
- }
- return c;
- }
- public static int[] split(int[] c) {
- printArray(c);
- if (c.length == 0 || c.length == 1) {
- return c;
- }
- if (c.length == 2) {
- if (istSortiert(c) == true) {
- return c;
- }
- else {
- invertiere(c);
- return c;
- }
- }
- int m = c.length / 2;
- int[] a = new int[m];
- int[] b = new int[c.length - m];
- for (int i = 0; i < a.length; i++) {
- if (c[i] != 0 ) {
- a[i] = c[i];
- }
- }
- for (int i = 0; i < b.length; i++) {
- if (c[i] != 0) {
- b[i] = c[m + i];
- }
- }
- printArray(a);
- printArray(b);
- int[] d = combine(split(a), split(b));
- return d;
- }
- public static boolean istSortiert(int[] a) {
- if (a.length == 1) {
- return true;
- }
- if(a[0] <= a[1]) {
- return true;
- }
- else {
- return false;
- }
- }
- public static int[] invertiere(int[] a) {
- int z = a[0];
- a[0] = a[1];
- a[1] = z;
- return a;
- }
- public static void printArray(int[] a) {
- String text = "";
- for (int i = 0; i < a.length; i++) {
- text += "[" + a[i] + "] ";
- }
- System.out.println(text);
- }
- public static void main(String[] args) {
- int[] c = {3,6,2,7,1,8,2,9,3,7,4,3,8,4,1,7,3,7};
- int[] f = split(c);
- printArray(f);
- System.out.println(merge.zaehler);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement