You are on page 1of 3

DEVOIR

Exercice D’économie

Abderrahim ouameur
Ticse-info2
Classe dichotomie :

public class dichotomie extends Thread {


private int[] tab;
private int val;
private int premierelement;
private int dernierelement;
private boolean seTrouve;
int p;
public dichotomie(int[] tab, int val, int premierelement, int
dernierelement) {
this.tab = tab;
this.val = val;
this.premierelement = premierelement;
this.dernierelement = dernierelement;
}
public int Position() {
return p;
}

public int getpremierelement() {


return premierelement;
}

public int getP() {


return p;
}

public int gedernierelement() {


return dernierelement;
}

public int[] getTab() {


return tab;
}

public boolean isFound() {


return seTrouve;
}
public void run() {
if (premierelement > dernierelement) {
return;
}

int mid = (premierelement + dernierelement) / 2;

if (tab[mid] == val) {
seTrouve = true;
p = mid;
return;
} else if (tab[mid] < val) {
dichotomie d = new dichotomie(tab, val, mid + 1, dernierelement);
d.start();
try {
d.join();
p = d.Position();
seTrouve = d.isFound();
} catch (Exception e) {}
} else {
dichotomie g = new dichotomie(tab, val, dernierelement, mid - 1);
g.start();
try {
g.join();
p = g.Position();
seTrouve = g.isFound();
} catch (Exception e) {}
}
}

Classe main
public class Main {
public static void main(String[] args) {
int[] tab = {1, 2, 3, 4, 5};
int val = 5;
dichotomie x = new dichotomie(tab, val, 0, tab.length - 1);
x.start();
try {
x.join();
if (x.isFound()) {
System.out.println("5 est dans la position " + x.p);
}
else {
System.out.println(" pas dans le tableau");
}
} catch (Exception e) {;}
}
}

You might also like