Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found
Select Git revision
  • main
1 result

Target

Select target project
  • gnaves/sort-template
  • g21232913/sort-tp-6
  • t19015527/tp-6
  • f20021643/sort-template
  • a22027291/sort-salim
  • s19033421/sort-template
  • b21232450/sort-template
7 results
Select Git revision
  • main
1 result
Show changes

Commits on Source 1

Showing with 411 additions and 2 deletions
# Default ignored files
/shelf/
/workspace.xml
# Editor-based HTTP Client requests
/httpRequests/
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml
SortVisualization
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CompilerConfiguration">
<bytecodeTargetLevel target="20" />
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="GradleSettings">
<option name="linkedExternalProjectsSettings">
<GradleProjectSettings>
<option name="externalProjectPath" value="$PROJECT_DIR$" />
<option name="modules">
<set>
<option value="$PROJECT_DIR$" />
</set>
</option>
</GradleProjectSettings>
</option>
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="RemoteRepositoriesConfiguration">
<remote-repository>
<option name="id" value="central" />
<option name="name" value="Maven Central repository" />
<option name="url" value="https://repo1.maven.org/maven2" />
</remote-repository>
<remote-repository>
<option name="id" value="jboss.community" />
<option name="name" value="JBoss Community repository" />
<option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
</remote-repository>
<remote-repository>
<option name="id" value="MavenRepo" />
<option name="name" value="MavenRepo" />
<option name="url" value="https://repo.maven.apache.org/maven2/" />
</remote-repository>
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ExternalStorageConfigurationManager" enabled="true" />
<component name="ProjectRootManager" version="2" languageLevel="JDK_20" project-jdk-name="20" project-jdk-type="JavaSDK" />
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Palette2">
<group name="Swing">
<item class="com.intellij.uiDesigner.HSpacer" tooltip-text="Horizontal Spacer" icon="/com/intellij/uiDesigner/icons/hspacer.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="1" hsize-policy="6" anchor="0" fill="1" />
</item>
<item class="com.intellij.uiDesigner.VSpacer" tooltip-text="Vertical Spacer" icon="/com/intellij/uiDesigner/icons/vspacer.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="1" anchor="0" fill="2" />
</item>
<item class="javax.swing.JPanel" icon="/com/intellij/uiDesigner/icons/panel.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3" />
</item>
<item class="javax.swing.JScrollPane" icon="/com/intellij/uiDesigner/icons/scrollPane.svg" removable="false" auto-create-binding="false" can-attach-label="true">
<default-constraints vsize-policy="7" hsize-policy="7" anchor="0" fill="3" />
</item>
<item class="javax.swing.JButton" icon="/com/intellij/uiDesigner/icons/button.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="0" fill="1" />
<initial-values>
<property name="text" value="Button" />
</initial-values>
</item>
<item class="javax.swing.JRadioButton" icon="/com/intellij/uiDesigner/icons/radioButton.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
<initial-values>
<property name="text" value="RadioButton" />
</initial-values>
</item>
<item class="javax.swing.JCheckBox" icon="/com/intellij/uiDesigner/icons/checkBox.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
<initial-values>
<property name="text" value="CheckBox" />
</initial-values>
</item>
<item class="javax.swing.JLabel" icon="/com/intellij/uiDesigner/icons/label.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="0" anchor="8" fill="0" />
<initial-values>
<property name="text" value="Label" />
</initial-values>
</item>
<item class="javax.swing.JTextField" icon="/com/intellij/uiDesigner/icons/textField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JPasswordField" icon="/com/intellij/uiDesigner/icons/passwordField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JFormattedTextField" icon="/com/intellij/uiDesigner/icons/formattedTextField.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JTextArea" icon="/com/intellij/uiDesigner/icons/textArea.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTextPane" icon="/com/intellij/uiDesigner/icons/textPane.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JEditorPane" icon="/com/intellij/uiDesigner/icons/editorPane.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JComboBox" icon="/com/intellij/uiDesigner/icons/comboBox.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="2" anchor="8" fill="1" />
</item>
<item class="javax.swing.JTable" icon="/com/intellij/uiDesigner/icons/table.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JList" icon="/com/intellij/uiDesigner/icons/list.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="2" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTree" icon="/com/intellij/uiDesigner/icons/tree.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTabbedPane" icon="/com/intellij/uiDesigner/icons/tabbedPane.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
<preferred-size width="200" height="200" />
</default-constraints>
</item>
<item class="javax.swing.JSplitPane" icon="/com/intellij/uiDesigner/icons/splitPane.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
<preferred-size width="200" height="200" />
</default-constraints>
</item>
<item class="javax.swing.JSpinner" icon="/com/intellij/uiDesigner/icons/spinner.svg" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
</item>
<item class="javax.swing.JSlider" icon="/com/intellij/uiDesigner/icons/slider.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
</item>
<item class="javax.swing.JSeparator" icon="/com/intellij/uiDesigner/icons/separator.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3" />
</item>
<item class="javax.swing.JProgressBar" icon="/com/intellij/uiDesigner/icons/progressbar.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1" />
</item>
<item class="javax.swing.JToolBar" icon="/com/intellij/uiDesigner/icons/toolbar.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1">
<preferred-size width="-1" height="20" />
</default-constraints>
</item>
<item class="javax.swing.JToolBar$Separator" icon="/com/intellij/uiDesigner/icons/toolbarSeparator.svg" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="0" anchor="0" fill="1" />
</item>
<item class="javax.swing.JScrollBar" icon="/com/intellij/uiDesigner/icons/scrollbar.svg" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="0" anchor="0" fill="2" />
</item>
</group>
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
</component>
</project>
\ No newline at end of file
package fr.univamu.sorting;
public class InsertionSort implements Sorter{
private final Sortable sortable;
public InsertionSort( Sortable sortable){
this.sortable = sortable;
}
public void sort() {
int n = sortable.size();
for (int i = 1; i < n; ++i) {
int presentElement = sortable.get(i);
int j = i - 1;
while (j >= 0 && sortable.get(j) > presentElement) {
sortable.set(j + 1, sortable.get(j));
j = j - 1;
}
sortable.set(j + 1, presentElement);
}
}
public Sortable getSortable (){
return sortable;
}
}
package fr.univamu.sorting;
public class QuickSort implements Sorter {
private final Sortable sortable;
public QuickSort(Sortable sortable) {
this.sortable = sortable;
}
private int partition(int start , int end) {
int pivot = sortable.get(end);
int i = start - 1;
for (int j = start; j < end; j++) {
int bool = sortable.compare(sortable.get(j),pivot);
if (bool == -1 || bool==0){
i++;
sortable.swap(i, j);
}
}
sortable.swap(i + 1, end);
return i + 1;
}
public void sort() {
if (sortable == null || sortable.size() <= 1) {
return;
}
sort(0, sortable.size() - 1);
}
private void sort(int start, int end) {
if (start < end) {
int pivotIndex = partition(start, end);
sort(start, pivotIndex - 1);
sort(pivotIndex + 1, end);
}
}
public Sortable getSortable (){
return sortable;
}
}
package fr.univamu.sorting;
import java.util.List;
public interface Sortable {
void swap (int index1, int index2);
int compare (int index1, int index2);
int size();
int get( int index);
void set(int index, int value);
List<Integer> getSortableParameter();
}
package fr.univamu.sorting;
import java.util.List;
public class SortableIntArray implements Sortable{
private final int[] array;
public SortableIntArray (int [] tab) {
this.array = tab;
}
public void swap(int index1, int index2){
int temp = array[index1];
array[index1] = array[index2];
array[index2] = temp;
}
public int compare (int index1, int index2){
if (index1 >= index2) {
if (index1 > index2) return 1;
else return 0;
} else {
return -1;
}
}
public int size(){
return array.length;
}
public int get(int index){
return array[index];
}
//// a voir avec le prof
@Override
public List<Integer> getSortableParameter() {
return null;
}
@Override
public void set(int index, int value) {
array[index] = value;
}
}
package fr.univamu.sorting;
import java.util.List;
public class SortableIntList implements Sortable {
private final List<Integer> list;
public SortableIntList (List<Integer> lists){
this.list = lists;
}
public void swap (int index1, int index2){
int temp = list.get(index1);
list.set(index1, list.get(index2));
list.set(index2, temp);
}
public int size(){
return list.size();
}
public int get (int index){
return list.get(index);
}
public int compare (int index1, int index2){
if (index1 >= index2) {
if (index1 > index2) return 1;
else return 0;
} else {
return -1;
}
}
public List<Integer> getSortableParameter() {
return list;
}
@Override
public void set(int index, int value) {
list.set(index,value);
}
}
\ No newline at end of file
package fr.univamu.sorting;
public interface Sorter {
void sort();
Sortable getSortable();
}
......@@ -2,9 +2,9 @@ package fr.univamu.sorting;
import org.junit.jupiter.api.Test;
import java.util.ArrayList;
import java.util.List;
import static fr.univamu.sorting.IntLists.*;
import static org.assertj.core.api.Assertions.assertThat;
class ListSortTest {
......@@ -12,6 +12,35 @@ class ListSortTest {
@Test
void testSort() {
List<Integer> values = new ArrayList<>(List.of(2,0,28,15,88,1,61));
System.out.println(values);
// List<Integer> values = IntLists.shuffledRange(1,100);
Sortable sortableValues = new SortableIntList(values);
QuickSort sorter = new QuickSort(sortableValues);
sorter.sort();
Sortable sorterSortableValues = sorter.getSortable();
//List<Integer> sortedList = IntStream.rangeClosed(1,100).boxed().toList();
System.out.println(sorterSortableValues.getSortableParameter());
}
@Test
void testInsertionSort() {
List<Integer> values = new ArrayList<>(List.of(2,0,28,15,88,1,61));
System.out.println(values);
// List<Integer> values = IntLists.shuffledRange(1,100);
Sortable sortableValues = new SortableIntList(values);
InsertionSort sorter = new InsertionSort(sortableValues);
sorter.sort();
Sortable sorterSortableValues = sorter.getSortable();
//List<Integer> sortedList = IntStream.rangeClosed(1,100).boxed().toList();
System.out.println(sorterSortableValues.getSortableParameter());
}
......