diff --git a/inf3.csproj b/inf3.csproj
index a2bda9d..4566a5c 100644
--- a/inf3.csproj
+++ b/inf3.csproj
@@ -102,6 +102,7 @@
+
diff --git a/src/Quicksort.cs b/src/Quicksort.cs
new file mode 100644
index 0000000..9ebdb59
--- /dev/null
+++ b/src/Quicksort.cs
@@ -0,0 +1,49 @@
+using System;
+using System.Collections.Generic;
+
+namespace WorldOfPeacecraft
+{
+ public class Quicksort
+ {
+ public static void sort (IList list, Func isSmaller)
+ {
+ if (list.Count != 0) {
+ sort (list, 0, list.Count - 1, isSmaller);
+ }
+ }
+
+ private static void sort (IList list, int startIndex, int endIndex, Func isSmaller)
+ {
+ T tmp;
+ if (endIndex - startIndex <= 0) {
+ return;
+ }
+ int pivot = endIndex;
+ int rechts = endIndex - 1;
+ int links = startIndex;
+ while (links < rechts) {
+ while (isSmaller(list[links], list[pivot]) && links < rechts) {
+ links++;
+ }
+ while (isSmaller(list[pivot], list[rechts]) && rechts > links) {
+ rechts--;
+ }
+ if (isSmaller (list [rechts], list [links]) && links < rechts) {
+ tmp = list [links];
+ list [links] = list [rechts];
+ list [rechts] = tmp;
+ links++;
+ }
+ }
+ if (isSmaller (list [links], list [pivot])) {
+ links++;
+ }
+ tmp = list[links];
+ list[links] = list[pivot];
+ list[pivot] = tmp;
+ pivot = links;
+ sort (list, startIndex, pivot - 1, isSmaller);
+ sort (list, pivot + 1, endIndex, isSmaller);
+ }
+ }
+}
\ No newline at end of file