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 (3)
Showing
with 522 additions and 4 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="GradleMigrationSettings" migrationVersion="1" />
<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" default="true" 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
......@@ -6,7 +6,17 @@ import java.util.stream.Collectors;
public class App {
public static void main(String[] args) {
List<Integer> shuffled = IntLists.shuffledRange(0,1000);
List<Integer> shuffled = IntLists.shuffledRange(0,10);
Sortable<Integer> a = new SortableIntList<>(shuffled);
// CountingSortable<Integer> Shuffled = new CountingSortable<>(a);
//CountingSortable<Integer> toSort = new CountingSortable<>(Shuffled);
Sorter Sort = new QuickSort<Integer>(a);
Sort.sort();
System.out.println(Sort);
System.out.println(
shuffled.stream()
.map(String::valueOf)
......
package fr.univamu.sorting;
import java.util.List;
public class CountingSortable<T extends Comparable<T>> /* extends SortableDecorator<T> */ implements Sortable<T>{
private Sortable<T> sortable;
@Override
public void swap(int index1, int index2) {
}
@Override
public int compare(int index1, int index2) {
return 0;
}
@Override
public int size() {
return 0;
}
@Override
public T get(int index) {
return null;
}
@Override
public void set(int index, T value) {
}
public int countingSwaps = 0;
public int countingCompare = 0;
public CountingSortable(Sortable<T> values) {
this.sortable = values;
}
public void swapAction (int index1, int index2){
countingSwaps++;
sortable.swap(index1,index2);
}
public void compareAction(int index1, int index2){
countingCompare ++;
sortable.compare(index1, index2);
}
public int getCountingCompare() {
return countingCompare;
}
public int getCountingSwaps(){
return countingSwaps;
}
}
package fr.univamu.sorting;
public class InsertionSort<T extends Comparable<T>> implements Sorter{
private final Sortable<T> sortable;
public InsertionSort( Sortable<T> sortable){
this.sortable = sortable;
}
public void sort() {
int n = sortable.size();
for (int i = 1; i < n; ++i) {
T presentElement = sortable.get(i);
int j = i - 1;
while (j >= 0 && sortable.compare(j,i) > 0) {
sortable.set(j + 1, sortable.get(j));
j = j - 1;
}
sortable.set(j + 1, presentElement);
}
}
}
package fr.univamu.sorting;
import java.io.PrintStream;
import java.util.List;
public class LoggingSortable<T extends Comparable<T>> extends SortableDecorator<T> {
private PrintStream logStream;
public LoggingSortable (Sortable<T> values){
super(values);
}
@Override
public void swapAction(int index1, int index2) {
logStream.println("swap : "+index1+" et "+index2);
}
@Override
public void compareAction (int index1, int index2) {
logStream.println("Compare : "+index1+" et "+index2);
}
public PrintStream getLogStream() {
return logStream;
}
}
package fr.univamu.sorting;
public class QuickSort<T extends Comparable<T>> implements Sorter {
private final Sortable<T> sortable;
public QuickSort(Sortable<T> sortable) {
this.sortable = sortable;
}
private void partition(int start , int end) {
//T pivot = sortable.get(end);
if (end <= start) {
return;
}
int i = start + 1;
int j = end;
while (i < j) {
while (i <= j && sortable.compare(start,i) > 0) {
i++;
}
while (i <= j && sortable.compare(start,j) < 0) {
j--;
}
if (i >= j) { break; }
sortable.swap(i,j);
i++;
j--;
}
sortable.swap(start,i-1);
partition(start,i-1);
partition(i+1,end);
}
public void sort() {
partition(0, sortable.size()-1);
}
}
package fr.univamu.sorting;
import java.util.List;
public interface Sortable<T extends Comparable<T>> {
void swap (int index1, int index2);
int compare (int index1, int index2);
int size();
T get( int index);
void set(int index,T value);
}
package fr.univamu.sorting;
import java.util.List;
public abstract class SortableDecorator<T extends Comparable<T>> implements Sortable<T>{
private final Sortable<T> values;
public SortableDecorator (Sortable<T> sortables){
this.values = sortables;
}
@Override
public int size() {
return values.size();
}
@Override
public T get(int index) {
return values.get(index);
}
@Override
public void set(int index, T value) {
values.set(index,value);
}
@Override
public int compare(int index1, int index2) {
this.compareAction(index1,index2);
return values.compare(index1,index1);
}
protected abstract void compareAction(int index1, int index2);
@Override
public void swap(int index1, int index2) {
values.swap(index1,index2);
}
protected abstract void swapAction (int index1, int index2);
}
package fr.univamu.sorting;
import java.util.Arrays;
import java.util.List;
public class SortableIntArray<T extends Comparable<T>> implements Sortable <T>{
private final T[] array;
public SortableIntArray (T[] tab) {
this.array = tab;
}
public void swap(int index1, int index2){
T temp = array[index1];
array[index1] = array[index2];
array[index2] = temp;
}
@Override
public int compare(int index1, int index2) {
return array[index1].compareTo(array[index2]);
}
/* public int compare (Integer index1, Integer index2){
if (index1 >= index2) {
if (index1 > index2) return 1;
else return 0;
} else {
return -1;
}*/
public int size(){
return array.length;
}
public T get(int index){
return array[index];
}
@Override
public void set(int index, T value) {
array[index] = value;
}
}
package fr.univamu.sorting;
import java.util.List;
public class SortableIntList <T extends Comparable<T>> implements Sortable<T> {
private final List<T> list;
public SortableIntList (List<T> lists){
this.list = lists;
}
public void swap (int index1, int index2){
T temp = list.get(index1);
list.set(index1, list.get(index2));
list.set(index2, temp);
}
public int size(){
return list.size();
}
public T get (int index){
return list.get(index);
}
@Override
public int compare(int index1, int index2) {
return list.get(index1).compareTo(list.get(index2));
}
/*public int compare (T index1, T index2){
if (index1 >= index2) {
if (index1 > index2) return 1;
else return 0;
} else {
return -1;
}
//return compare(index1,index2);
}*/
@Override
public void set(int index, T value) {
list.set(index,value);
}
}
\ No newline at end of file
package fr.univamu.sorting;
public interface Sorter {
void sort();
}
......@@ -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 {
......@@ -14,5 +14,4 @@ class ListSortTest {
void testSort() {
}
}
\ No newline at end of file