Skip to content
Snippets Groups Projects
Commit 6782bd24 authored by gildas-bayogda's avatar gildas-bayogda
Browse files

Premiere partie

parent 37d7a18d
No related branches found
No related tags found
No related merge requests found
Pipeline #25029 failed
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());
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment