commit 3d984082c8eccb65ec0a93ce02190b3f595232f7 Author: joachimschmidt557 Date: Tue Apr 30 14:08:32 2019 +0200 Initial commit diff --git a/.classpath b/.classpath new file mode 100644 index 0000000..51a8bba --- /dev/null +++ b/.classpath @@ -0,0 +1,6 @@ + + + + + + diff --git a/.project b/.project new file mode 100644 index 0000000..c2d4f9a --- /dev/null +++ b/.project @@ -0,0 +1,17 @@ + + + merge-sort-ftw + + + + + + org.eclipse.jdt.core.javabuilder + + + + + + org.eclipse.jdt.core.javanature + + diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..3a21537 --- /dev/null +++ b/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,11 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.8 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=1.8 diff --git a/bin/Main.class b/bin/Main.class new file mode 100644 index 0000000..f033080 Binary files /dev/null and b/bin/Main.class differ diff --git a/bin/Studierender.class b/bin/Studierender.class new file mode 100644 index 0000000..17b49fd Binary files /dev/null and b/bin/Studierender.class differ diff --git a/src/Main.java b/src/Main.java new file mode 100644 index 0000000..aed1338 --- /dev/null +++ b/src/Main.java @@ -0,0 +1,85 @@ +import java.text.DateFormat; +import java.text.ParseException; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.Date; +import java.util.List; +import java.util.Locale; + +public class Main { + + public static void main(String[] args) throws ParseException { + + DateFormat df = DateFormat.getDateInstance(DateFormat.SHORT, Locale.GERMAN); + + List array = new ArrayList(); + + System.out.println(mergeSort(array)); + + } + + public static List mergeSort(List array) { + + List result = new ArrayList(); + + if (array.isEmpty()) { + return new ArrayList(array); + } + + if (array.size() == 1) { + return new ArrayList(array); + } + + List half1 = new ArrayList(); + List half2 = new ArrayList(); + + for (int i = 0; i < array.size(); i++) { + + if (i < array.size() / 2) { + half1.add(array.get(i)); + } + else { + half2.add(array.get(i)); + } + + } + + result = merge(mergeSort(half1), mergeSort(half2)); + + return result; + + } + + public static List merge(List a1, List a2) { + + List result = new ArrayList(); + + while (!a1.isEmpty() || !a2.isEmpty()) { + + if (a1.isEmpty()) { + result.addAll(a2); + break; + } + if (a2.isEmpty()) { + result.addAll(a1); + break; + } + + if (a1.get(0).compareTo(a2.get(0)) <= 0) { + + result.add(a1.remove(0)); + + } + else { + + result.add(a2.remove(0)); + + } + + } + + return result; + + } + +} diff --git a/src/Studierender.java b/src/Studierender.java new file mode 100644 index 0000000..2416397 --- /dev/null +++ b/src/Studierender.java @@ -0,0 +1,63 @@ +import java.util.Date; + +public class Studierender implements Comparable{ + + private String name; + private int matrikelnr; + private Date geburtsDatum; + + public Studierender(String name, int matrikelnr, Date geburtsDatum) { + + this.name = name; + this.matrikelnr = matrikelnr; + this.geburtsDatum = geburtsDatum; + + } + + public String getName() { + return name; + } + public void setName(String name) { + this.name = name; + } + public int getMatrikelnr() { + return matrikelnr; + } + public void setMatrikelnr(int matrikelnr) { + this.matrikelnr = matrikelnr; + } + public Date getGeburtsDatum() { + return geburtsDatum; + } + public void setGeburtsDatum(Date geburtsDatum) { + this.geburtsDatum = geburtsDatum; + } + + @Override + public int compareTo(Studierender arg0) { + int result = 0; + + result = this.name.compareTo(arg0.name); + + if (result == 0) { + + result = Integer.compare(this.matrikelnr, arg0.matrikelnr); + + } + + if (result == 0) { + + result = this.geburtsDatum.compareTo(arg0.geburtsDatum); + + } + + return result; + } + + public String toString() { + + return "[" + name + " " + matrikelnr + " " + geburtsDatum.toString() + "]"; + + } + +}