Advertisement
Guest User

2 loops vs 1 loops

a guest
Aug 28th, 2012
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.71 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Diagnostics;
  4. using System.Linq;
  5. using System.Text;
  6.  
  7. namespace ConsoleApplication1
  8. {
  9.     class Program
  10.     {
  11.         static void Main(String[] args) {
  12.  
  13.             const int size = 32;
  14.             var runcount = Math.Pow(10, 6);
  15.  
  16.             var arrb = new Boolean[size];
  17.             var arrb2 = new Boolean[size];
  18.             var links = new List<Int32>();
  19.  
  20.             for (int i = 0; i < arrb.Length; i += 2)
  21.                 links.Add(i);
  22.  
  23.             var t = new Stopwatch();
  24.             t.Start();
  25.             for (int i = 0; i < runcount; ++i)
  26.                 proc1(arrb, links);
  27.             t.Stop();
  28.             Console.WriteLine("time1 {0} ns", t.ElapsedMilliseconds / runcount * 1000);
  29.  
  30.  
  31.             t = new Stopwatch();
  32.             t.Start();
  33.             for (int i = 0; i < runcount; ++i)
  34.                 proc2(arrb2, links);
  35.             t.Stop();
  36.             Console.WriteLine("time2 {0} ns", t.ElapsedMilliseconds / runcount * 1000);
  37.  
  38.             Console.WriteLine("results equals = {0}", arrb2.SequenceEqual(arrb));
  39.  
  40.             Console.ReadKey();
  41.         }
  42.  
  43.         public static void proc1(Boolean[] arrb, List<Int32> links) {
  44.             var j = 0;
  45.             for (var i = 0; i < arrb.Length; ++i)
  46.                 if (links.Count > j && links[j] == i) {
  47.                     arrb[i] = true;
  48.                     j++;
  49.                 } else arrb[i] = false;
  50.  
  51.         }
  52.  
  53.         public static void proc2(Boolean[] arrb, List<Int32> links) {
  54.             for (int i = 0; i < arrb.Length; ++i)
  55.                 arrb[i] = false;
  56.  
  57.             foreach (var l in links)
  58.                 arrb[l] = true;
  59.         }
  60.     }
  61. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement