diff --git a/src/main/java/fr/univamu/sorting/Sort.java b/src/main/java/fr/univamu/sorting/Sort.java new file mode 100644 index 0000000000000000000000000000000000000000..8d4e21cba6c24c8f42a41ecf4f0763c1d5b6c3e6 --- /dev/null +++ b/src/main/java/fr/univamu/sorting/Sort.java @@ -0,0 +1,22 @@ +package fr.univamu.sorting; + +import java.util.List; + +public class Sort { + public Sortable sortable; + + public List<Integer> IntList; + public int[] IntTab; + + + public void sort() { + for (int i = 0; i < this.size() - 1; i++) { + for (int j = i + 1; j < this.size(); j++) { + if (compare(j,i) < 0) { + swap(i,j); + } + } + } + } +} + diff --git a/src/main/java/fr/univamu/sorting/Sortable.java b/src/main/java/fr/univamu/sorting/Sortable.java new file mode 100644 index 0000000000000000000000000000000000000000..8f0b574b46ce27a8239c011ae81454a06b23741e --- /dev/null +++ b/src/main/java/fr/univamu/sorting/Sortable.java @@ -0,0 +1,37 @@ +package fr.univamu.sorting; + +public interface Sortable { + public void swap(int index1, int index2) { + int value1 = IntTab[index1]; + int value2 = IntTab[index2]; + IntTab[index1] = value2; + IntTab[index2] = value1; + + } + + public int compare(int index1, int index2) { + return IntTab[index1] - (IntTab[index2]; + } + + public int size() { + return IntTab.length; + } + public void swap(int index1, int index2) { + int value1 = IntList.get(index1); + int value2 = IntList.get(index2); + IntList.set(index1, value1); + IntList.set(index2, value2); + } + + public int compare(int index1, int index2) { + return IntList.get(index1).compareTo(IntList.get(index2)); + } + + public int size() { + return IntList.size(); + } + + public int get(int index) { + return IntList.get(index); + } +} diff --git a/src/main/java/fr/univamu/sorting/SortableIntArray.java b/src/main/java/fr/univamu/sorting/SortableIntArray.java new file mode 100644 index 0000000000000000000000000000000000000000..aaa80ba094ba32aad61c15a7346f4c4a49ed7254 --- /dev/null +++ b/src/main/java/fr/univamu/sorting/SortableIntArray.java @@ -0,0 +1,19 @@ +package fr.univamu.sorting; + +public class SortableIntArray { + public int[] IntTab; + + public void swap(int index1, int index2) { + int value1 = IntTab[index1]; + int value2 = IntTab[index2]; + IntTab[index1] = value2; + IntTab[index2] = value1; + } + public int compare(int index1, int index2) { + return IntTab[index1] - (IntTab[index2]; + } + public int size() { + return IntTab.length; + } + +} diff --git a/src/main/java/fr/univamu/sorting/SortableIntList.java b/src/main/java/fr/univamu/sorting/SortableIntList.java index 65cc74cea2c0d8517ae3be9f1c8db94003643362..042c4d598e8ef5fdf344762d3a8c27720dfc2a3a 100644 --- a/src/main/java/fr/univamu/sorting/SortableIntList.java +++ b/src/main/java/fr/univamu/sorting/SortableIntList.java @@ -2,7 +2,7 @@ package fr.univamu.sorting; import java.util.*; public class SortableIntList { - public ArrayList<Integer> IntList; + public List<Integer> IntList; public void swap(int index1, int index2) { int value1 = IntList.get(index1); @@ -13,7 +13,6 @@ public class SortableIntList { public int compare(int index1, int index2) { return IntList.get(index1).compareTo(IntList.get(index2)); - } public int size() { @@ -23,12 +22,11 @@ public class SortableIntList { public int get(int index) { return IntList.get(index); } - public void sort() { for (int i = 0; i < IntList.size() - 1; i++) { for (int j = i + 1; j < IntList.size(); j++) { - if (compare(IntList.get(j), IntList.get(i)) < 0) { - swap(IntList.get(i), IntList.get(j)); + if (compare(j,i) < 0) { + swap(i,j); } } } diff --git a/src/test/java/fr/univamu/sorting/ListSortTest.java b/src/test/java/fr/univamu/sorting/ListSortTest.java index d25a4eff80a1a3842b639fc90b3978afe050da9a..76a1d00fca8f82d96ec0bb28b7c0fa07c82afcfb 100644 --- a/src/test/java/fr/univamu/sorting/ListSortTest.java +++ b/src/test/java/fr/univamu/sorting/ListSortTest.java @@ -12,26 +12,7 @@ class ListSortTest { @Test void testSort() { - ArrayList<Integer> TestList = new ArrayList<Integer>(8); - TestList.add(1); - TestList.add(8); - TestList.add(9); - TestList.add(5); - TestList.add(4); - TestList.add(3); - TestList.add(2); - TestList.add(4); - ArrayList<Integer> TestList2 = new ArrayList<Integer>(8); - TestList.add(1); - TestList.add(2); - TestList.add(3); - TestList.add(4); - TestList.add(4); - TestList.add(5); - TestList.add(8); - TestList.add(9); - assertThat(TestList.sort()).isEqualTo(TestList2); - + assertThat(shuffledRange(1,8).sort()).isEqualTo(range(1,8)); } } \ No newline at end of file