From 7e31b68407f3a605e92ff3f56de404a57dadce2f Mon Sep 17 00:00:00 2001 From: Fourn <alexandre.fournel@etu.univ-amu.fr> Date: Fri, 9 Dec 2022 11:56:16 +0100 Subject: [PATCH] task5 + questions --- src/main/java/fr/univamu/sorting/Sort.java | 22 +++++++++++ .../java/fr/univamu/sorting/Sortable.java | 37 +++++++++++++++++++ .../fr/univamu/sorting/SortableIntArray.java | 19 ++++++++++ .../fr/univamu/sorting/SortableIntList.java | 8 ++-- .../java/fr/univamu/sorting/ListSortTest.java | 21 +---------- 5 files changed, 82 insertions(+), 25 deletions(-) create mode 100644 src/main/java/fr/univamu/sorting/Sort.java create mode 100644 src/main/java/fr/univamu/sorting/Sortable.java create mode 100644 src/main/java/fr/univamu/sorting/SortableIntArray.java 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 0000000..8d4e21c --- /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 0000000..8f0b574 --- /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 0000000..aaa80ba --- /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 65cc74c..042c4d5 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 d25a4ef..76a1d00 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 -- GitLab