Initial commit
This commit is contained in:
commit
3d984082c8
7 changed files with 182 additions and 0 deletions
6
.classpath
Normal file
6
.classpath
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<classpath>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
|
||||
<classpathentry kind="src" path="src"/>
|
||||
<classpathentry kind="output" path="bin"/>
|
||||
</classpath>
|
||||
17
.project
Normal file
17
.project
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>merge-sort-ftw</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.jdt.core.javabuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>org.eclipse.jdt.core.javanature</nature>
|
||||
</natures>
|
||||
</projectDescription>
|
||||
11
.settings/org.eclipse.jdt.core.prefs
Normal file
11
.settings/org.eclipse.jdt.core.prefs
Normal file
|
|
@ -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
|
||||
BIN
bin/Main.class
Normal file
BIN
bin/Main.class
Normal file
Binary file not shown.
BIN
bin/Studierender.class
Normal file
BIN
bin/Studierender.class
Normal file
Binary file not shown.
85
src/Main.java
Normal file
85
src/Main.java
Normal file
|
|
@ -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<Studierender> array = new ArrayList<Studierender>();
|
||||
|
||||
System.out.println(mergeSort(array));
|
||||
|
||||
}
|
||||
|
||||
public static List<Studierender> mergeSort(List<Studierender> array) {
|
||||
|
||||
List<Studierender> result = new ArrayList<Studierender>();
|
||||
|
||||
if (array.isEmpty()) {
|
||||
return new ArrayList<Studierender>(array);
|
||||
}
|
||||
|
||||
if (array.size() == 1) {
|
||||
return new ArrayList<Studierender>(array);
|
||||
}
|
||||
|
||||
List<Studierender> half1 = new ArrayList<Studierender>();
|
||||
List<Studierender> half2 = new ArrayList<Studierender>();
|
||||
|
||||
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<Studierender> merge(List<Studierender> a1, List<Studierender> a2) {
|
||||
|
||||
List<Studierender> result = new ArrayList<Studierender>();
|
||||
|
||||
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;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
63
src/Studierender.java
Normal file
63
src/Studierender.java
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
import java.util.Date;
|
||||
|
||||
public class Studierender implements Comparable<Studierender>{
|
||||
|
||||
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() + "]";
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue