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

Target

Select target project
No results found
Show changes
Showing
with 307 additions and 0 deletions
File added
package p4a;
public class MainLinkedListStdAddFin {
public static void main(String[] args) {
LinkedListStd<Integer> linkedListStd = new LinkedListStd<Integer>();
int nbOperation = Integer.parseInt(args[0]);
for (int i = 0; i < nbOperation; i++) {
linkedListStd.ajout(0, i);
}
}
}
File added
package p4a;
import java.util.Random;
public class MainLinkedListStdGet {
public static void main(String[] args) {
Random rnd = new Random();
LinkedListStd<Integer> linkedListStd = new LinkedListStd<Integer>();
int nbOperation = Integer.parseInt(args[0]);
for (int i = 0; i < nbOperation; i++) {
linkedListStd.ajout(0, i);
}
for (int i = 0; i < nbOperation; i++) {
linkedListStd.acces(rnd.nextInt(nbOperation));
}
}
}
package p4a;
public class MainLinkedListStdRemoveDecrementation {
public static void main(String[] args) {
ArrayListStd<Integer> arrayListStd = new ArrayListStd<Integer>();
int nbOperation = Integer.parseInt(args[0]);
for (int i = 0; i < nbOperation; i++) {
arrayListStd.ajout(0, i);
}
for (int i = nbOperation-1; i >= 0; i--) {
arrayListStd.suppression(i);
}
}
}
package p4a;
public class MainLinkedListStdRemoveFirstValue {
public static void main(String[] args) {
ArrayListStd<Integer> arrayListStd = new ArrayListStd<Integer>();
int nbOperation = Integer.parseInt(args[0]);
for (int i = 0; i < nbOperation; i++) {
arrayListStd.ajout(0, i);
}
for (int i = 0; i < nbOperation; i++) {
arrayListStd.suppression(i);
}
}
}
File added
package p4a;
public class MainTableauPersoAdd {
public static void main(String[] args) {
int nbOperation = Integer.parseInt(args[0]);
TableauPerso tabStd = new TableauPerso(nbOperation);
for (int i = 0; i < nbOperation; i++) {
tabStd.ajout(0, i);
}
}
}
File added
package p4a;
public class MainTableauStdAdd {
public static void main(String[] args) {
int nbOperation = Integer.parseInt(args[0]);
TableauStd tabStd = new TableauStd(nbOperation);
for (int i = 0; i < nbOperation; i++) {
tabStd.ajout(0, i);
}
}
}
File added
package p4a;
import java.util.Random;
public class MainTableauStdGet {
public static void main(String[] args) {
Random rnd = new Random();
int nbOperation = Integer.parseInt(args[0]);
TableauStd tabStd = new TableauStd(nbOperation);
for (int i = 0; i < nbOperation; i++) {
tabStd.ajout(0, i);
}
for (int i = 0; i < nbOperation; i++) {
tabStd.acces(rnd.nextInt(nbOperation));
}
}
}
File added
package p4a;
public interface Structure {
public void ajout(Object element, int position);
public void suppression(int position);
public Object acces(int position);
}
File added
package p4a;
public class TableauPerso implements Structure{
private Object[] tableau;
private int nbElements;
public TableauPerso(int taille) {
if (taille < 0) {
throw new IllegalArgumentException("TableauPerso : taille negative " + taille);
}
this.tableau = new Object[taille];
nbElements = 0;
}
@Override
public void ajout(Object element, int position) {
if (position < 0 || position > nbElements) {
throw new IndexOutOfBoundsException("ajout : mauvais index " + position);
}
if (nbElements >= tableau.length) {
throw new IllegalStateException("ajout : tableau plein");
}
for (int i = nbElements; i > position; i--) {
tableau[i] = tableau[i - 1];
}
tableau[position] = element;
nbElements++;
}
@Override
public void suppression(int position) {
if (position < 0 || position >= nbElements) {
throw new IndexOutOfBoundsException("suppression : position incorrecte " + position);
}
for (int i = position + 1; i < nbElements; i++) {
tableau[i - 1] = tableau[i];
}
nbElements--;
}
@Override
public Object acces(int position) {
if (position > tableau.length || position < 0) {
throw new IllegalArgumentException("acces : position incorecte");
}
return tableau[position];
}
}
File added
package p4a;
public class TableauStd implements Structure {
private Object[] tableau;
public TableauStd(int taille) {
if (taille < 0) {
throw new IllegalArgumentException("TableauStd : taille negative " + taille);
}
this.tableau = new Object[taille];
}
@Override
public void ajout(Object element, int position) {
if (position > tableau.length) {
throw new UnsupportedOperationException("ajout : operation non supportee (taille depassee)");
}
else tableau[position] = element;
}
@Override
public void suppression(int position) {
throw new UnsupportedOperationException("suppression : operation non supportee");
}
@Override
public Object acces(int position) {
if (position > tableau.length || position < 0) {
throw new IllegalArgumentException("acces : position incorecte");
}
return tableau[position];
}
}
NbOperations,Version,CPU,Mem
100000,ArrayListStd,0.91,57108
100000,ArrayListStd,0.92,55820
100000,ArrayListStd,0.93,49876
100000,LinkedListStd,0.09,54392
100000,LinkedListStd,0.10,58128
100000,LinkedListStd,0.09,51884
100000,TableauStd,0.09,54912
100000,TableauStd,0.08,51800
100000,TableauStd,0.06,54408
125000,ArrayListStd,1.46,56624
125000,ArrayListStd,1.46,52944
125000,ArrayListStd,1.46,51648
125000,LinkedListStd,0.09,54288
125000,LinkedListStd,0.08,59224
125000,LinkedListStd,0.07,59332
125000,TableauStd,0.07,54460
125000,TableauStd,0.09,55764
125000,TableauStd,0.08,57932
150000,ArrayListStd,2.11,50224
150000,ArrayListStd,2.12,54908
150000,ArrayListStd,2.12,56948
150000,LinkedListStd,0.08,52072
150000,LinkedListStd,0.10,55716
150000,LinkedListStd,0.09,54236
150000,TableauStd,0.08,53528
150000,TableauStd,0.08,51816
150000,TableauStd,0.10,53452
175000,ArrayListStd,2.90,49916
175000,ArrayListStd,2.88,50140
175000,ArrayListStd,2.90,52136
175000,LinkedListStd,0.10,55940
175000,LinkedListStd,0.10,56400
175000,LinkedListStd,0.10,58184
175000,TableauStd,0.08,51252
175000,TableauStd,0.07,51736
175000,TableauStd,0.08,55900
200000,ArrayListStd,3.78,54852
200000,ArrayListStd,3.80,51924
200000,ArrayListStd,3.79,49696
200000,LinkedListStd,0.10,58176
200000,LinkedListStd,0.11,59136
200000,LinkedListStd,0.10,56108
200000,TableauStd,0.07,51492
200000,TableauStd,0.06,58952
200000,TableauStd,0.08,51460
225000,ArrayListStd,4.78,52188
225000,ArrayListStd,4.81,49824
225000,ArrayListStd,4.86,54564
225000,LinkedListStd,0.12,56824
225000,LinkedListStd,0.12,56280
225000,LinkedListStd,0.11,60244
225000,TableauStd,0.09,53536
225000,TableauStd,0.08,58924
225000,TableauStd,0.08,59044
250000,ArrayListStd,5.89,55992
250000,ArrayListStd,5.91,53988
250000,ArrayListStd,5.92,59084
250000,LinkedListStd,0.10,56292
250000,LinkedListStd,0.11,61284
250000,LinkedListStd,0.09,60560
250000,TableauStd,0.09,51772
250000,TableauStd,0.09,52048
250000,TableauStd,0.10,57988
275000,ArrayListStd,7.22,59104
275000,ArrayListStd,7.15,53912
275000,ArrayListStd,7.19,53868
275000,LinkedListStd,0.11,56400
275000,LinkedListStd,0.09,57916
275000,LinkedListStd,0.11,60212
275000,TableauStd,0.08,53836
275000,TableauStd,0.09,56948
275000,TableauStd,0.08,51920
300000,ArrayListStd,8.54,59052
300000,ArrayListStd,8.55,55952
300000,ArrayListStd,8.59,56108
300000,LinkedListStd,0.10,58008
300000,LinkedListStd,0.10,60300
300000,LinkedListStd,0.10,57920
300000,TableauStd,0.08,52528
300000,TableauStd,0.09,58884
300000,TableauStd,0.08,54716
#!/bin/bash
#Compare l'operation d'ajout en tete de liste sur les ArrayList / LinkedList / Tableaux standards
TESTS=3
STRUCT=3
NBOPERATIONS="100000 125000 150000 175000 200000 225000 250000 275000 300000"
echo "NbOperations,Version,CPU,Mem"
for nb in $NBOPERATIONS
do
for i in `seq $STRUCT`
do
for j in `seq $TESTS`
do
if [ $i = 1 ]
then
res=`(/usr/bin/time -f "%U,%M" java p4a.MainArrayListStdAddDebut $nb > /dev/null) 2>&1`
echo "$nb,ArrayListStd,$res"
elif [ $i = 2 ]
then
res=`(/usr/bin/time -f "%U,%M" java p4a.MainLinkedListStdAddDebut $nb > /dev/null) 2>&1`
echo "$nb,LinkedListStd,$res"
else
res=`(/usr/bin/time -f "%U,%M" java p4a.MainTableauStdAdd $nb > /dev/null) 2>&1`
echo "$nb,TableauStd,$res"
fi
done
done
done
\ No newline at end of file