Advertisement
Guest User

Untitled

a guest
Jan 28th, 2015
234
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.82 KB | None | 0 0
  1. // Notkun: i = helmingunarleitB(a,n,s);
  2. // Fyrir: n er heiltala (þ.e. int) >=0.
  3. // a er strengjafylki (þ.e. fylki af const
  4. // char*) sem inniheldur n sæti (eða fleiri),
  5. // og sætin eru í vaxandi stafrófsröð miðað
  6. // við venjulega strengjasamanburðarfallið
  7. // strcmp. s er C strengur (þ.e. const char*).
  8. // Eftir: 0 <= i <= n, og allir strengirnir í
  9. // sætunum a[0..i-1] eru fyrir framan
  10. // strenginn s í stafrófsröð eða jafnir s,
  11. // og allir strengirnir í sætunum a[i..n-1]
  12. // eru fyrir aftan s í istafrófsröð.
  13. // Innihald fylkisins a er óbreytt.
  14. int helmingunarleitB( const char **a, int n, const char *s )
  15. {
  16. int low = 0;
  17. int high = n-1;
  18. printf("%s"," low: ");
  19. printf("%d", low);
  20. printf("%s"," high: ");
  21. printf("%d", high);
  22. int mid = (low+high)/2;
  23. printf("%s"," mid: ");
  24. printf("%d", mid);
  25.  
  26. if (low==high) return low;
  27. if (s == "") return 0;
  28. if (a[mid]>s) {
  29. printf("%s"," mid nuna: ");
  30. printf("%d", mid);
  31. return helmingunarleitB(&a[low],mid,s);
  32. }
  33. if (a[mid]==s) {
  34. return mid+1+helmingunarleitB(&a[mid+1], mid+1, s);
  35. }
  36. else {
  37. printf("%s"," mid núna: ");
  38. printf("%d", mid);
  39. return mid+1+helmingunarleitB(&a[mid+1], mid+1, s);
  40. }
  41.  
  42.  
  43.  
  44. // HÉR VANTAR FORRITSTEXTA.
  45. // MUNIÐ AÐ HÉR Á AÐ NOTA ENDURKVÆMNI OG ENGA LYKKJU.
  46. // ATHUGIÐ AÐ TIL AÐ LEITA ENDURKVÆMT Í SVÆÐINU
  47. // a[i..j-1] MÁ NOTA KALLIÐ
  48. // helmingunarleitB(&a[i],j-i,s)
  49. // EN ATHUGIÐ LÍKA AÐ SKILAGILDIÐ ÚR ÞVÍ KALLI ER
  50. // HLIÐRAÐ MIÐAÐ VIÐ BYRJUNARSÆTIÐ a[0] Í HEILDARFYLKINU.
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement