package pack;
import java.lang.reflect.Array;
import java.util.*;
public class IE {
public int valori;
public IE(int valori)
{
this.valori=valori;
}
public void AddExtract() {
Integer[] array = new Integer[valori];
LinkedList<Integer> LL = new LinkedList<Integer>();
HashSet<Integer> hs = new HashSet<Integer>();
Random rand = new Random();
long start1, start2, start3, end1, end2, end3, TimpI1, TimpI2, TimpI3, TimpE1, TimpE2, TimpE3, Timp1, Timp2, Timp3;
int i, valDeAdaugat, indexExtragere;
/////////////////////////////////////////////////////////////////////////////
start1 = System.currentTimeMillis();
for (i = 0; i < valori; i++) {
valDeAdaugat = rand.nextInt(valori);
array[i]=valDeAdaugat;
}
end1 = System.currentTimeMillis();
TimpI1 = end1 - start1;
///////////////////////////////////////////////////////////////////////////////
start2 = System.currentTimeMillis();
for (i = 0; i < valori; i++) {
valDeAdaugat = rand.nextInt(valori);
LL.add(valDeAdaugat);
}
end2 = System.currentTimeMillis();
TimpI2 = end2 - start2;
///////////////////////////////////////////////////////////////////////////////
start3 = System.currentTimeMillis();
for (i = 0; i < valori; i++) {
valDeAdaugat = rand.nextInt(valori);
hs.add(valDeAdaugat);
}
end3 = System.currentTimeMillis();
TimpI3 = end3 - start3;
System.out.println(hs);
int n=valori;
start1 = System.currentTimeMillis();
while(n>0){
indexExtragere = rand.nextInt(n);
array[indexExtragere]=array[n-1];
--n;
}
end1 = System.currentTimeMillis();
TimpE1 = end1 - start1;
System.out.println("Array final: ");
for(i=0;i<valori;i++)
System.out.println(array[i]);
start2 = System.currentTimeMillis();
for (i = 1; i <=valori; i++) {
indexExtragere = rand.nextInt(LL.size());
LL.remove(indexExtragere);
}
end2 = System.currentTimeMillis();
TimpE2 = end2 - start2;
start3 = System.currentTimeMillis();
while(!hs.isEmpty()) {
indexExtragere = rand.nextInt(valori);
if(hs.contains(indexExtragere));
{
hs.remove(indexExtragere);
}
}
end3 = System.currentTimeMillis();
TimpE3 = end3 - start3;
Timp1 = TimpI1 + TimpE1;
Timp2 = TimpI2 + TimpE2;
Timp3 = TimpI3 + TimpE3;
System.out.println("Timp ArrayList: "+Timp1+ "\nTimp LinkedList: "+Timp2+"\nTimp HashSet: "+Timp3);
}
public static void main(String[] args) {
System.out.println("dati numarul de valori: ");
Scanner sc = new Scanner(System.in);
int valori = sc.nextInt();
IE introdExtrag = new IE(valori);
if(valori!=0)
{
introdExtrag.AddExtract();
}
else
{
System.out.println("//do thread(valori)");
AdaugareCuFrecventa adf=new AdaugareCuFrecventa();
adf.start();
}
}
}
package pack;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;
public class AdaugareCuFrecventa extends Thread{
public void run() {
Random rand=new Random();
Vector <Integer> v=new Vector<Integer>();
String line;
int val;
BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
try{
while((line=in.readLine())==null)
{
val=rand.nextInt(3000);
v.add(val);
Thread.sleep(100);
System.out.println("thread adormit");
}
in.close();
}catch (InterruptedException e) {
// TODO Auto-generated catch block
System.out.println(e.getMessage());e.printStackTrace();
}catch(IOException e)
{
System.out.println(e.getMessage());
}
ArrayList<Integer> al = new ArrayList<Integer>();
LinkedList<Integer> LL = new LinkedList<Integer>();
HashSet<Integer> hs = new HashSet<Integer>();
long start1, start2, start3, end1, end2, end3, TimpI1, TimpI2, TimpI3, TimpE1, TimpE2, TimpE3, Timp1, Timp2, Timp3;
int i, valDeAdaugat, indexExtragere;
/////////////////////////////////////////////////////////////////////////////
start1 = System.currentTimeMillis();
for (i = 0; i < v.size(); i++) {
al.add(v.elementAt(i));
}
end1 = System.currentTimeMillis();
TimpI1 = end1 - start1;
///////////////////////////////////////////////////////////////////////////////
start2 = System.currentTimeMillis();
for (i = 0; i < v.size(); i++) {
LL.add(v.elementAt(i));
}
end2 = System.currentTimeMillis();
TimpI2 = end2 - start2;
///////////////////////////////////////////////////////////////////////////////
start3 = System.currentTimeMillis();
for (i = 0; i < v.size(); i++) {
hs.add(v.elementAt(i));
}
end3 = System.currentTimeMillis();
TimpI3 = end3 - start3;
System.out.println(hs);
start1 = System.currentTimeMillis();
for (i = 0; i <v.size(); i++) {
al.remove(i);
}
end1 = System.currentTimeMillis();
TimpE1 = end1 - start1;
start2 = System.currentTimeMillis();
for (i = 0; i <v.size(); i++) {
LL.remove(i);
}
end2 = System.currentTimeMillis();
TimpE2 = end2 - start2;
start3 = System.currentTimeMillis();
while(!hs.isEmpty()) {
if(hs.contains(v.elementAt(i)));
{
hs.remove(v.elementAt(i));
}
}
System.out.println("val ramase in hs: "+hs);
end3 = System.currentTimeMillis();
TimpE3 = end3 - start3;
Timp1 = TimpI1 + TimpE1;
Timp2 = TimpI2 + TimpE2;
Timp3 = TimpI3 + TimpE3;
System.out.println("Timp ArrayList: "+Timp1+ "\nTimp LinkedList: "+Timp2+"\nTimp HashSet: "+Timp3);
}
}
Niciun comentariu:
Trimiteți un comentariu