• Suchen & Sortieren "unplugged" (work in progress)
  • verybusybeaver
  • 29.06.2023
  • Informatik
  • 9
Um die Lizenzinformationen zu sehen, klicken Sie bitte den gewünschten Inhalt an.
un­plug­ged

Com­pu­ter Sci­ence un­plug­ged ist ein von der Uni­ver­si­tät Can­ter­bu­ry (Neu­see­land) ent­wi­ckel­tes For­mat, bei Kon­zep­te der In­for­ma­tik ohne Com­pu­ter (un­plug­ged) nach­er­lebt und ge­lernt wer­den kön­nen.

Das vor­lie­gen­de Ma­te­ri­al ori­en­tiert sich an die­sem An­satz, steht aber in kei­ner Ver­bin­dung zu die­ser Uni­ver­si­tät.

Su­chen: eine wie­der­keh­ren­de Auf­ga­be

Du kennst das Pro­blem: Eine Such­ma­schi­ne hat Dich auf eine Seite ver­wie­sen, auf der Dein Such­be­griff vor­kommt - ir­gend­wo in den 5-6 Bild­schirm­sei­ten Text. Du drückst Strg-​F (oder, am Smart­phone, die ent­spre­chen­den But­tons für auf der Seite su­chen), gibst Dei­nen Such­be­griff ein und schon siehst Du, wo der Be­griff zum ers­ten Mal ver­wen­det wird.

Doch was pas­siert hier ei­gent­lich?

Das mensch­li­che Vor­ge­hen in Worte fas­sen

1
Ver­su­che ein­mal, Dein Vor­ge­hen in Worte zu fas­sen, wenn Du in der De­fi­ni­ti­on für un­plug­ged nach dem Wort Ma­te­ri­al suchst und schrei­be das Er­geb­nis auf.
2
Tau­sche Deine No­ti­zen mit einem*r Mit­schü­ler*in aus und ver­su­che es mit einer frem­den An­lei­tung - seid ihr beide gleich vor­ge­gan­gen?
3
Be­sprecht, wel­che Fä­hig­kei­ten für euer Vor­ge­hen be­nö­tigt wer­den, und ob ein Com­pu­ter in der Lage ist, diese zur Ver­fü­gung zu stel­len.
4
Be­sprecht, wie sich die Such­zeit än­dert, wenn der Text dop­pelt, halb, vier­mal,... so lang wäre. Das ge­such­te Wort sei zu­fäl­lig ge­wählt, kann also an jeder Po­si­ti­on des Tex­tes ste­hen.

...und wie lange dau­ert das nun?

Zur Mes­sung des Zeit­be­darfs eig­nen sich Se­kun­den, Mil­li­se­kun­den, Mi­nu­ten usw. sehr schlecht: Je nach dem auf wel­chem Sys­tem mit wel­chen Spe­zi­fi­ka­ti­o­nen die selbe Suche durch­ge­führt wird. In der In­for­ma­tik ver­wen­det man statt­des­sen üb­li­cher­wei­se die An­zahl der ist gleich-​Operationen (also der Ver­glei­che).



Au­ßer­dem un­ter­schei­det man einen Op­ti­mal­fall (Best Case, bei einer Suche also ge­fun­den beim ers­ten Ver­such), einen schlech­tes­ten Fall (worst case - ge­fun­den, nach­dem alle an­de­ren Ele­men­te er­folg­los ver­gli­chen wur­den) und einen durch­schnitt­li­chen Fall (average case - so lange dau­ert es im Durch­schnitt, bis ein Ele­ment ge­fun­den wird)

5
Be­sprecht, wie viele Ver­glei­che für für das Su­chen eines Wor­tes im Text ganz oben nach eurer Met­ho­se im best case und worst case not­wen­dig sind, und wie sich diese Zah­len än­dern, wenn der Text dop­pelt oder vier­mal so lang ist.
6
Er­ge­ben sich Mög­lich­kei­ten, Ver­glei­che ein­zu­spa­ren, wenn die Wör­ter al­pha­be­tisch sor­tiert wären? Dis­ku­tiert.

Ein­fa­cher Suche: vom An­fang bis zur Fund­stel­le (li­ne­ar)

Eine Lö­sung, die viele von euch ge­fun­den haben, be­steht darin, beim ers­ten Wort an­zu­fan­gen, und dann Wort für Wort zu ver­glei­chen, ob es sich das ge­such­te Wort han­delt. So ar­bei­tet man sich durch den Text, bis man auf das Wort trifft.



Der best case ist dabei un­ab­hän­gig von der Text­län­ge - wenn man di­rekt beim ers­ten Ver­such das Wort fin­det, braucht man immer nur einen Ver­gleich. Im worst case ist das al­ler­letz­te Wort des Tex­tes ge­sucht. Dann muss man für einen dop­pelt so lan­gen Text auch dop­pelt so viele Ver­glei­che ma­chen, bis man es ge­fun­den hat.



Die­ses Such­ver­fah­ren wird li­ne­a­re Suche ge­nannt, weil der Text wie beim Lesen Wort für Wort (eben: li­ne­ar) durch­ge­gan­gen wird.

Üb­ri­gens: Was durch­sucht wird, ist völ­lig egal. Wir kön­nen Texte, Lis­ten, Bil­der, Bil­der­schrif­ten, ... durch­su­chen, so­lan­ge wir nur eine Mög­lich­keit des Ver­glei­chens haben.

Op­ti­mie­rung bei vor­sor­tier­ten Lis­ten

Hat man eine be­reits auf­stei­gend oder ab­stei­gend sor­tier­te Liste vor sich (das ist bei Tex­ten nor­ma­ler­wei­se nicht der Fall!), kann man sich be­son­ders bei län­ge­ren Tex­ten Such­zeit in Form von Ver­glei­chen spa­ren. Dabei macht man sich die In­for­ma­ti­on zu­nut­ze, dass die Ele­men­te be­reits sor­tiert sind.



Bei­spiel: Ge­sucht wird die 22. Mit der li­ne­a­ren Suche wären es im worst case 7 Ver­glei­che.

7
Be­schrei­be, wie die Vor­sor­tie­rung der Liste im fol­gen­den Ver­fah­ren ge­nutzt wird!
8
Wie ver­än­dert sich die An­zahl der Ver­glei­che, wenn die Liste dop­pelt so lang ist?
x