Hey!
Meine HÜ besteht darin den folgenden Algorithmus grob zu analysieren.
Also wieviele Abfragen er mir min., max. und im schnitt machen muss.
also mind. zwei wenn B1[n] <B2[n];
max. 2*n wenn alles gleich ist;
aber beim durchschnitt blick ich echt nicht durch.
ich hab zwar das ergebnis schon vor mir, kopiert von einem kollegen, aber ich will wissen wie man darauf kommt. (bei ihm versteh ich es nicht :bahnhof: - er ist weniger der erklärer, eher mehr der versteher.
Noch ein paar Fehler ausgebessert und Ergänzungen gemacht.
Die Bits sind von folgendem schema:
0001
0010
0011
0100
0101
0110
0111
Meine HÜ besteht darin den folgenden Algorithmus grob zu analysieren.
Also wieviele Abfragen er mir min., max. und im schnitt machen muss.
also mind. zwei wenn B1[n] <B2[n];
max. 2*n wenn alles gleich ist;
aber beim durchschnitt blick ich echt nicht durch.
ich hab zwar das ergebnis schon vor mir, kopiert von einem kollegen, aber ich will wissen wie man darauf kommt. (bei ihm versteh ich es nicht :bahnhof: - er ist weniger der erklärer, eher mehr der versteher.
Code:
Type
Bit = (0..1)
Result = (lower, equal, greater)
Result Compare(↓int n ↓Bit b1[n] ↓Bit b2[n]){
For (int i=n-1..0){
If (b1[i]==b2[i]) {}
ElseIf (b1[i]<b2[i]) {return lower}
Else {return greater}
}
return equal
}
Noch ein paar Fehler ausgebessert und Ergänzungen gemacht.
Die Bits sind von folgendem schema:
0001
0010
0011
0100
0101
0110
0111