Advertisement
Guest User

Untitled

a guest
Mar 3rd, 2015
269
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 6.08 KB | None | 0 0
  1.  
  2.  
  3. "1.     Fylla í Helmingunarleit"
  4.  
  5.         // Notkun:  k = leita (f, i, j, x);
  6.         // Fyrir:       f[i .. j−1] er í minnkandi röð
  7.         // Eftir:       f[i .. j−1] er óbreytt , i <= k <= j , og  f[i .. k−1] >= x > f[k .. j−1]
  8.         int leita(double[]f, int i, int j, double x)
  9.         {
  10.             if (i == j) return i;
  11.             int m = i + ( j−i )/2 ;
  12.             if (f[m] ?1? x) return leita(f, i, ?2?, x);
  13.             else return leita(f, ?3?, j, x);
  14.         }
  15.        
  16.        
  17.        
  18.  
  19.         int leita(double[]f, int i, int j, double x)
  20.         {
  21.             int p=i , q=j;
  22.             while(?4?)
  23.             {
  24.                 // | >=x | óþekkt | <x |
  25.                 //  i     p        q    j
  26.                 int m = p + (?5?)/2;
  27.                 if (f[m] ?6? x)  p = ?7?;
  28.                 else q = ?8?;
  29.             }
  30.             return p;
  31.         }
  32.        
  33.        
  34.        
  35.         Til að finna út hvort það sé goggur/jafntog eða bara goggur. Í Notkun/Fyrir/Eftir:
  36.  
  37.         Ef X = a[k] þá er goggurjafntog í línunni þar sem J breytist (j=m) og bara goggur í línunni þar sem i breytist (i = m+1)
  38.         Ef X = a[k-1] þá er bara goggur í línunni þar sem J breytist (J = m) og goggurjafntog í línunni þar sem i breytist (i=m+1)
  39.        
  40.        
  41.        
  42.        
  43.        
  44.        
  45.        
  46.        
  47.        
  48.         Svar/Answer:
  49.         ?1? <
  50.         ?2? m
  51.         ?3? m+1
  52.         ?4? p!=q eða p<q
  53.         ?5? q-p
  54.         ?6? >=
  55.         ?7? m+1
  56.         ?8? m
  57.  
  58.  
  59. "2.     Fylla í Selection Sort"
  60.  
  61.         // Notkun:  swap (f, i, j);
  62.         // Fyrir:       f[i] og f[j] eru sæti í f
  63.         // Eftir:       Búið er að víxla gildunum í f[i] og f[j]
  64.         void swap(double [] f, int i, int j);
  65.  
  66.         // Notkun:  sort (f, i, j);
  67.         // Fyrir:       f[i .. j−1] er ekki −tómt svæði í f
  68.         // Eftir:       Búið er að raða f[i . . j −1] í minnkandi röð
  69.         void sort (double [] f, int i, int j)
  70.         {
  71.             int p = ?1?;
  72.             while (?2?)
  73.             {
  74.                 // | stærstu gildi í minnkandi röð | óþekkt |
  75.                 //  i                               p        j
  76.                 int q = ?3?;
  77.                 while(?4?)
  78.                 {
  79.                     // a) | stærstu gildi í minnkandi röð | óþekkt |
  80.                     //     i                               p   q    j
  81.                     // b)   p < q <= j
  82.                     // c) f[p] er stærst af f[p . . q−1]
  83.                     if(f[q] ?5? f[p])
  84.                     swap(f, p, q);
  85.                     q++;
  86.                 }
  87.                 p++;
  88.             }
  89.         }
  90.  
  91.        
  92.        
  93.  
  94.        
  95.         ATH: Í hverri umferð ytri lykkju finnur Selection Sort minnsta stakið  í óraða svæðinu og raðar því rétt o.s.fv.
  96.        
  97.        
  98.        
  99.        
  100.        
  101.    
  102.        
  103.        
  104.         Svar/Answer:
  105.         ?1? i
  106.         ?2? p!=j
  107.         ?3? p+1
  108.         ?4? q!=j eða q<j
  109.         ?5? >
  110.  
  111. "3.     Fastayrðing seinni lykkju Heap Sort"
  112.  
  113.         Svar: d)
  114.        
  115.         | hrúga með stærsta efst | stærst í vaxandi röð |
  116.          0                        i                      n
  117.  
  118.  
  119. "4.     a) Fastayrðing fyrri lykkju    Heap Sort"
  120.  
  121.  
  122.         | hrúga | óþekkt |
  123.         EÐA
  124.         | óþekkt | uppfyllir hrúguskilyrði |
  125.  
  126.  
  127.  
  128.     "b) Tímaflækja Heap Sort"
  129.    
  130.    
  131.         Svar/Answer:
  132.        
  133.         Tímaflækjan er O(n log n) vegna þess að heapsort vinnur í tveimur
  134.         lykkjum, fyrri og seinni, og hver umferð í hvorri lykkju hefur tímaflækju O(log n).
  135.         Í báðum tilfellum felst hver umferð lykkjunnar í að rúlla gildi niður hrúgu á réttan
  136.         stað. Þar eð hrúgan inniheldur í mesta lagi n gildi er tímaflækja umferðarinnar
  137.         O(log n).
  138.  
  139. "5.     Gera Quicksort ef þú færð Partition gefið "
  140.  
  141.  
  142.         Svar/Answer:
  143.        
  144.         // Notkun: sort(a,start,end);
  145.         // Fyrir: a[start..end-1] er svæði í fylkinu a.
  146.         // Eftir: Búið er að raða a[start..end-1] í vaxandi röð.
  147.         void sort( double a[], int start, int end )
  148.         {
  149.             if(end-start < 2) return;
  150.             int k,n;
  151.             skipta(a,start,end,k,n);
  152.             sort(a,start,k);
  153.             sort(a,k+1,n);
  154.             sort(a,n+1,end);
  155.         }
  156.  
  157.  
  158. "6.     Merge Sort "
  159.  
  160.         Svar:
  161.        
  162.         // Notkun: sort(a,b,i,j);
  163.         // Fyrir: a[i..j-1] og b[i..j-1] eru svæði í fylkjunum a
  164.         // og b.
  165.         // Eftir: Búið er að raða a[i..j-1] í vaxandi röð,
  166.         // b[i..j-1] inniheldur nú eitthvert drasl.
  167.         void sort( double a[], double b[], int i, int j )
  168.         {
  169.             if( j-i<2 ) return;
  170.             int r = i+(j-i)/2;
  171.             int q = i+(r-i)/2;
  172.             int s = r+(j-r)/2;
  173.             // | A | B | C | D |
  174.             //  i   q   r   s   j
  175.             sort(a,b,i,q);
  176.             sort(a,b,q,r);
  177.             sort(a,b,r,s);
  178.             sort(a,b,s,j);
  179.             merge(a,b,i,q,r);
  180.             merge(a,b,r,s,j);
  181.             merge(b,a,i,r,j);
  182.         }
  183.  
  184.  
  185. "7.     Tímaflækjur"
  186.        
  187.         Aðferð                Versti tími    Meðaltími
  188.         Insertion-sort          O(n^2)      same
  189.         Selection-sort          O(n^2)      same
  190.         Quicksort               O(n^2)      O(n log n)
  191.         Merge-sort              O(n log n)      same
  192.         Radix-sort              O(n)            same           
  193.         Radix-sort= (gerið ráð fyrir að raðað sé heiltölum af takmarkaðri stærð, assume integers of limited size are being sorted)
  194.         Heapsort                O(n log n)      same
  195.    
  196.         Fyrir quicksort þarf að tiltaka bæði versta tíma og meðaltíma. Í hinum aðferðunum dugar
  197.         að segja hver versti tíminn er þar eð meðaltíminn er sá sami. Við nefnum ekki besta tíma
  198.         því við höfum takmarkaðan áhuga á honum.
  199.        
  200.        
  201.        
  202. "8.     Meginreglan um upplýsingahuld"
  203.  
  204.  
  205.         Svar/Answer:
  206.        
  207.         Meginreglan um upplýsingahuld segir að fela skuli sérhverja veigamikla
  208.         útfærsluákvörðun (stundum kallað hönnunarákvörðun eða smíðaákvörðun) í einingu.
  209.         Tilgangurinn er að gera kleift að endurskoða ákvörðunina seinna, þ.e. skipta um skoðun.
  210.         Þetta gerir viðhald hugbúnaðarkerfisins auðveldara því seinni tíma breytingar eru ekki
  211.         eins líklegar til að valda keðjuverkun í virkni kerfisins.
  212.  
  213.  
  214.  
  215. "9.     Pow Pow"
  216.  
  217.        
  218.         Svar:
  219.        
  220.         public static double pow(double x, int n)
  221.         {
  222.             if( n==0 ) return 1.0;
  223.             if( n%2==0 ) return pow(x*x, n/2);
  224.             else return x*pow( x*x, n/2);
  225.         }
  226.        
  227.  
  228.  
  229. "10.    Binary Tree's"
  230.  
  231.  
  232.         i. Tvíleitartré – Binary search tree
  233.        
  234.                 Tréð er í vaxandi "In-Order" röð
  235.                
  236.                
  237.         ii. AVL-tré – AVL tree
  238.        
  239.                 Tréð er í vaxandi "In-Order" röð
  240.                 Munurinn á lengd vinstri og hægri hlið getur verið mesta lagi 1 (í lengd)
  241.                
  242.                
  243.         iii. Hrúga með hæsta gildi efst – Heap with greatest value on top
  244.        
  245.                 Hrúga með hæsta gildi efst
  246.        
  247.        
  248.         iv. Hrúga með minnsta gildi efst – Heap with least value on top
  249.        
  250.        
  251.                 Hrúga með minnsta gildi efst
  252.        
  253.        
  254.        
  255.        
  256.         "Pre-Order"
  257.                
  258.                 Root -> Left -> Right
  259.                
  260.         "In-Order"
  261.        
  262.                 Left -> Root -> Right
  263.        
  264.         "Post-Order"
  265.        
  266.                 Left -> Right -> Root
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement