1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
| <script>
function tableau(length,prob) {
const arr=new Array(length);
for(let i=length-1;i>=0;i--) {
if(Math.random()<prob) {
arr[i]=Math.floor(Math.random()*length*prob);
}
}
return arr;
}
function test(meth,arr) {
let nb;
let uniqueArr;
nb=arr.length<100?100000:1;
console.time(meth);
if(meth==="Set(arr)") {
for(let i=nb;i>0;i--) {
uniqueArr=[...new Set(arr)];
}
}
else if(meth==="Set(arr.flat())") {
for(let i=nb;i>0;i--) {
uniqueArr=[...new Set(arr.flat())];
}
}
else {
for(let i=nb;i>0;i--) {
uniqueArr=[...new Set(arr.filter(()=>true))];
}
}
console.timeEnd(meth);
if(arr.length<100) {
console.log(arr,uniqueArr);
}
else {
console.log(arr.length,uniqueArr.length);
}
}
let length=10;
const arrA0=tableau(length,0);
const arrA05=tableau(length,0.5);
const arrA1=tableau(length,1);
length=100000;
const arrB0=tableau(length,0);
const arrB05=tableau(length,0.5);
const arrB1=tableau(length,1);
</script>
Tableau vide, longeur 10
<input type="button" onclick="test(this.value,arrA0);" value="Set(arr)">
<input type="button" onclick="test(this.value,arrA0);" value="Set(arr.flat())">
<input type="button" onclick="test(this.value,arrA0);" value="Set(arr.filter(()=>true))">
<br><br>
Tableau mi-plein, longeur 10
<input type="button" onclick="test(this.value,arrA05);" value="Set(arr)">
<input type="button" onclick="test(this.value,arrA05);" value="Set(arr.flat())">
<input type="button" onclick="test(this.value,arrA05);" value="Set(arr.filter(()=>true))">
<br><br>
Tableau plein, longeur 10
<input type="button" onclick="test(this.value,arrA1);" value="Set(arr)">
<input type="button" onclick="test(this.value,arrA1);" value="Set(arr.flat())">
<input type="button" onclick="test(this.value,arrA1);" value="Set(arr.filter(()=>true))">
<br><br>
Tableau vide, longeur 100000
<input type="button" onclick="test(this.value,arrB0);" value="Set(arr)">
<input type="button" onclick="test(this.value,arrB0);" value="Set(arr.flat())">
<input type="button" onclick="test(this.value,arrB0);" value="Set(arr.filter(()=>true))">
<br><br>
Tableau mi-plein, longeur 100000
<input type="button" onclick="test(this.value,arrB05);" value="Set(arr)">
<input type="button" onclick="test(this.value,arrB05);" value="Set(arr.flat())">
<input type="button" onclick="test(this.value,arrB05);" value="Set(arr.filter(()=>true))">
<br><br>
Tableau plein, longeur 100000
<input type="button" onclick="test(this.value,arrB1);" value="Set(arr)">
<input type="button" onclick="test(this.value,arrB1);" value="Set(arr.flat())">
<input type="button" onclick="test(this.value,arrB1);" value="Set(arr.filter(()=>true))"> |
Partager