Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Notkun: i = helmingunarleitB(a,n,s);
- // Fyrir: n er heiltala (þ.e. int) >=0.
- // a er strengjafylki (þ.e. fylki af const
- // char*) sem inniheldur n sæti (eða fleiri),
- // og sætin eru í vaxandi stafrófsröð miðað
- // við venjulega strengjasamanburðarfallið
- // strcmp. s er C strengur (þ.e. const char*).
- // Eftir: 0 <= i <= n, og allir strengirnir í
- // sætunum a[0..i-1] eru fyrir framan
- // strenginn s í stafrófsröð eða jafnir s,
- // og allir strengirnir í sætunum a[i..n-1]
- // eru fyrir aftan s í istafrófsröð.
- // Innihald fylkisins a er óbreytt.
- int helmingunarleitB( const char **a, int n, const char *s )
- {
- int low = 0;
- int high = n-1;
- printf("%s"," low: ");
- printf("%d", low);
- printf("%s"," high: ");
- printf("%d", high);
- int mid = (low+high)/2;
- printf("%s"," mid: ");
- printf("%d", mid);
- if (low==high) return low;
- if (s == "") return 0;
- if (a[mid]>s) {
- printf("%s"," mid nuna: ");
- printf("%d", mid);
- return helmingunarleitB(&a[low],mid,s);
- }
- if (a[mid]==s) {
- return mid+1+helmingunarleitB(&a[mid+1], mid+1, s);
- }
- else {
- printf("%s"," mid núna: ");
- printf("%d", mid);
- return mid+1+helmingunarleitB(&a[mid+1], mid+1, s);
- }
- // HÉR VANTAR FORRITSTEXTA.
- // MUNIÐ AÐ HÉR Á AÐ NOTA ENDURKVÆMNI OG ENGA LYKKJU.
- // ATHUGIÐ AÐ TIL AÐ LEITA ENDURKVÆMT Í SVÆÐINU
- // a[i..j-1] MÁ NOTA KALLIÐ
- // helmingunarleitB(&a[i],j-i,s)
- // EN ATHUGIÐ LÍKA AÐ SKILAGILDIÐ ÚR ÞVÍ KALLI ER
- // HLIÐRAÐ MIÐAÐ VIÐ BYRJUNARSÆTIÐ a[0] Í HEILDARFYLKINU.
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement