<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Some things to note...</title>
	<atom:link href="http://roadrunner74.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://roadrunner74.wordpress.com</link>
	<description>My thoughts on C#,SQL, Sharepoint and Poker...</description>
	<lastBuildDate>Mon, 14 Jul 2008 06:07:16 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='roadrunner74.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/16e55c7bbd20fff74e040fe97abec9f3?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>Some things to note...</title>
		<link>http://roadrunner74.wordpress.com</link>
	</image>
			<item>
		<title>Google Code Jam</title>
		<link>http://roadrunner74.wordpress.com/2008/07/09/google-code-jam/</link>
		<comments>http://roadrunner74.wordpress.com/2008/07/09/google-code-jam/#comments</comments>
		<pubDate>Wed, 09 Jul 2008 13:02:31 +0000</pubDate>
		<dc:creator>Heiko Hatzfeld</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Challenge; C#; Google; CodeJam]]></category>

		<guid isPermaLink="false">http://roadrunner74.wordpress.com/?p=17</guid>
		<description><![CDATA[Well&#8230; You might have noticed that I enjoy doing small Programming challenges, like those on Dev102. So I just noticed that there is currently another &#8220;Google Code Jam&#8221; running.
 
So head over to http://code.google.com/codejam/contest/ and give those problems a shot &#38; have fun
       <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=roadrunner74.wordpress.com&blog=4011236&post=17&subd=roadrunner74&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Well&#8230; You might have noticed that I enjoy doing small Programming challenges, like those on Dev102. So I just noticed that there is currently another &#8220;Google Code Jam&#8221; running.</p>
<p> </p>
<p>So head over to <a href="http://code.google.com/codejam/contest/">http://code.google.com/codejam/contest/</a> and give those problems a shot &amp; have fun</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/roadrunner74.wordpress.com/17/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/roadrunner74.wordpress.com/17/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/roadrunner74.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/roadrunner74.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/roadrunner74.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/roadrunner74.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/roadrunner74.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/roadrunner74.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/roadrunner74.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/roadrunner74.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/roadrunner74.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/roadrunner74.wordpress.com/17/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=roadrunner74.wordpress.com&blog=4011236&post=17&subd=roadrunner74&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://roadrunner74.wordpress.com/2008/07/09/google-code-jam/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a03161ffd05ccf23031076e24982fbd3?s=96&#38;d=identicon" medium="image">
			<media:title type="html">Roadrunner</media:title>
		</media:content>
	</item>
		<item>
		<title>SQL Server Performance &#8211; Indexing 101</title>
		<link>http://roadrunner74.wordpress.com/2008/07/09/sql-server-performance-indexing-101/</link>
		<comments>http://roadrunner74.wordpress.com/2008/07/09/sql-server-performance-indexing-101/#comments</comments>
		<pubDate>Wed, 09 Jul 2008 09:59:45 +0000</pubDate>
		<dc:creator>Heiko Hatzfeld</dc:creator>
				<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[Clustered]]></category>
		<category><![CDATA[Index]]></category>

		<guid isPermaLink="false">http://roadrunner74.wordpress.com/?p=16</guid>
		<description><![CDATA[A small article that describes the different indexing options that are available in the SQL Server. Part 1 covers the basics of a clustered Index.<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=roadrunner74.wordpress.com&blog=4011236&post=16&subd=roadrunner74&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><span style="font-size:large;"><span style="font-family:Tahoma;"><span lang="EN-US">The SQL Server stores Data,</span><span lang="EN-US"> </span><span lang="EN-US">l</span><span lang="EN-US">ots of it. And you usually want to retrieve the data as fast as possible. So what are you going to do? You create an index on your </span><span lang="EN-US">data tables</span><span lang="EN-US">.</span></span></span></p>
<p><span style="font-size:large;"><span style="font-family:Tahoma;"><span lang="EN-US">Well great. </span><span lang="EN-US">That’s</span><span lang="EN-US"> a step in the right direction, and most likely you have improved the performance in the order of magnitudes. But what kind of index did you create and what are the </span><span lang="EN-US">differences</span><span lang="EN-US">? Is it a clustered index? Is the index covering your query? Why should it cover? What&#8217;s &#8220;new&#8221; in SQL Server 2005 or 2008? </span><span lang="EN-US">What’s</span><span lang="EN-US"> a fill factor?</span></span></span></p>
<p><span lang="EN-US"><span style="font-size:large;"><span style="font-family:Tahoma;">I wanted to cover everything in one article, but it looks like this is getting out of hand, so this will be a small series. </span></span></span></p>
<p><span lang="EN-US"><span style="font-size:large;font-family:Tahoma;"> </span></span></p>
<p><span style="font-size:large;"><span style="font-family:Tahoma;"><span lang="EN-US">A table in the SQL Server can have 2 different </span><span lang="EN-US">kinds</span><span lang="EN-US"> of indexes. Today we will take a closer look at the:</span></span></span></p>
<h1 style="margin:12pt 0 3pt;"><span lang="EN-US"><span style="font-size:large;"><span style="font-family:Tahoma;">- Clustered Index</span></span></span></h1>
<p><span style="font-size:large;"><span style="font-family:Tahoma;"><span lang="EN-US">This index can only exist ONCE. It defines the &#8220;phys</span><span lang="EN-US">ical layout&#8221; of your data</span><span lang="EN-US">. </span><span lang="EN-US">Basically the clustered index is your table. All your data will be contained in the leaf nodes of a binary-tree (the clustered index). </span></span></span></p>
<p><span lang="EN-US"><span style="font-size:large;"><span style="font-family:Tahoma;">Let’s look at the properties of a clustered index.</span></span></span></p>
<h2 style="margin:12pt 0 3pt;"><span lang="EN-US"><em><span style="font-size:large;"><span style="font-family:Tahoma;">Pros:</span></span></em></span></h2>
<p style="margin-left:71.25pt;text-indent:-18pt;"><span style="font-family:Symbol;"><span><span style="font-size:large;">·</span><span style="font:7pt;">        </span></span></span><span lang="EN-US"><span style="font-size:large;"><span style="font-family:Tahoma;">Extreme performance for selecting ranges of values ( between , &gt; , &lt; …)</span></span></span></p>
<p style="margin-left:71.25pt;text-indent:-18pt;"><span style="font-family:Symbol;"><span><span style="font-size:large;">·</span><span style="font:7pt;">        </span></span></span><span lang="EN-US"><span style="font-size:large;"><span style="font-family:Tahoma;">Good performance for foreign key columns</span></span></span></p>
<p style="margin-left:71.25pt;text-indent:-18pt;"><span style="font-family:Symbol;"><span><span style="font-size:large;">·</span><span style="font:7pt;">        </span></span></span><span lang="EN-US"><span style="font-size:large;"><span style="font-family:Tahoma;">Grouped columns</span></span></span></p>
<p style="margin-left:71.25pt;text-indent:-18pt;"><span style="font-family:Symbol;"><span><span style="font-size:large;">·</span><span style="font:7pt;">        </span></span></span><span lang="EN-US"><span style="font-size:large;"><span style="font-family:Tahoma;">Columns with very distinct values (NOT primary key)</span></span></span></p>
<p style="margin-left:71.25pt;text-indent:-18pt;"><span style="font-family:Symbol;"><span><span style="font-size:large;">·</span><span style="font:7pt;">        </span></span></span><span lang="EN-US"><span style="font-size:large;"><span style="font-family:Tahoma;">Data that is processed sequentially </span></span></span></p>
<p style="margin-left:71.25pt;text-indent:-18pt;"><span style="font-family:Symbol;"><span><span style="font-size:large;">·</span><span style="font:7pt;">        </span></span></span><span lang="EN-US"><span style="font-size:large;"><span style="font-family:Tahoma;">Columns that grow constantly (e.g. DateCreated, ID,…)</span></span></span></p>
<p style="margin-left:71.25pt;text-indent:-18pt;"><span style="font-family:Symbol;"><span><span style="font-size:large;">·</span><span style="font:7pt;">        </span></span></span><span lang="EN-US"><span style="font-size:large;"><span style="font-family:Tahoma;">Static data (Write once, change never)</span></span></span></p>
<p style="margin-left:71.25pt;text-indent:-18pt;"><span style="font-family:Symbol;"><span><span style="font-size:large;">·</span><span style="font:7pt;">        </span></span></span><span lang="EN-US"><span style="font-size:large;"><span style="font-family:Tahoma;">The Clustered index will always “cover” your query, since it contains all data </span></span></span></p>
<p class="MsoNormal" style="margin:0;"><span lang="EN-US"><span style="font-size:small;font-family:Tahoma;"> </span></span></p>
<h2 style="margin:12pt 0 3pt;"><span lang="EN-US"><em><span style="font-size:large;"><span style="font-family:Tahoma;">Cons:</span></span></em></span></h2>
<p style="margin-left:71.25pt;text-indent:-18pt;"><span style="font-family:Symbol;"><span><span style="font-size:large;">·</span><span style="font:7pt;">        </span></span></span><span lang="EN-US"><span style="font-size:large;"><span style="font-family:Tahoma;">Bad for data with “random” inserts. This can cause “page splits”</span></span></span></p>
<p style="margin-left:71.25pt;text-indent:-18pt;"><span style="font-family:Symbol;"><span><span style="font-size:large;">·</span><span style="font:7pt;">        </span></span></span><span lang="EN-US"><span style="font-size:large;"><span style="font-family:Tahoma;">Lookup of specific Values (this can be handled better by a regular index)</span></span></span></p>
<p style="margin-left:71.25pt;text-indent:-18pt;"><span style="font-family:Symbol;"><span><span style="font-size:large;">·</span><span style="font:7pt;">        </span></span></span><span lang="EN-US"><span style="font-size:large;"><span style="font-family:Tahoma;">Dynamic data (Data that changes often. It will force the Serer to relocate the entire row, if the data changes)</span></span></span></p>
<p style="margin-left:71.25pt;text-indent:-18pt;"><span style="font-family:Symbol;"><span><span style="font-size:large;">·</span><span style="font:7pt;">        </span></span></span><span lang="EN-US"><span style="font-size:large;"><span style="font-family:Tahoma;">Might need extra space, if the index value is not constantly growing (Called “Fill Factor”).</span></span></span></p>
<p style="margin-left:71.25pt;text-indent:-18pt;"><span style="font-family:Symbol;"><span><span style="font-size:large;">·</span><span style="font:7pt;">        </span></span></span><span lang="EN-US"><span style="font-size:large;"><span style="font-family:Tahoma;">Must (well really should but it’s a very urgent <em>should</em>) be aligned with a partitioned table</span></span></span></p>
<p class="MsoNormal" style="margin:0;"><span lang="EN-US"><span style="font-size:small;font-family:Tahoma;"> </span></span></p>
<p><span lang="EN-US"><span style="font-size:large;"><span style="font-family:Tahoma;">What are page splits and fill factors? Those 2 terms are somewhat related to each other. I already mentioned that a clustered index will contain the data in its physical layout. So imagine a phonebook. This stores people by location &amp; name. So it’s very easy to retrieve all “Smith in New York” (e.g. 10 pages).</span></span></span></p>
<p><span lang="EN-US"><span style="font-size:large;"><span style="font-family:Tahoma;">But if we have a new Mr. Smith moving to NY, then we have a problem. We won’t be able to insert him into the phonebook, since there is no extra room. Instead we have to rearrange all persons and print a new phonebook. SQL Server is not that extreme, it will only process pages of data. Each data page is only 8 kb in size. </span></span></span></p>
<p><span lang="EN-US"><span style="font-size:large;"><span style="font-family:Tahoma;">The fill factor will tell SQL Server how much of this space it should use when (re)creating an index. If we would pick the Location/Name as our clustered Index, then we know that we will most likely have some inserts/deletes/updates over time. So we will let the SQL Server know that it should keep some spare room on every page. This will allow us to insert our new Mr. Smith if he chooses to move to NY.</span></span></span></p>
<p><span lang="EN-US"><span style="font-size:large;"><span style="font-family:Tahoma;">An important point to note is that a fill factor will only force an INITIAL amount of free space. When the index gets filled over time, since Mr. Smith is also bringing his whole clan to NY, the free space will decrease, until there is no more space left, and that will introduce the “page split”.</span></span></span></p>
<p><span lang="EN-US"><span style="font-size:large;"><span style="font-family:Tahoma;">When a page split happens, the SQL Server will distribute the data from the page and move some of it to a new page, so there will be some room. After the new room is created, we can insert our Mr. Smith on the new, half empty page.</span></span></span></p>
<p><span lang="EN-US"><span style="font-size:large;"><span style="font-family:Tahoma;">So you could avoid this problem by telling SQL Server to leave lots of room (e.g.: Fill factor 50%) for new data. Well… That’s not really that good either, since now we will spread the data over many more pages. And if we ask the server for “Smith in New York” again, it will now be forced to read twice as many pages (20) from the storage system to answer the same question. And the bad news is that IO is still the slowest part of your average Database…</span></span></span></p>
<p><span lang="EN-US"><span style="font-size:large;"><span style="font-family:Tahoma;">This can be avoided, if we have a static, always increasing key on our clustered index, since the data will always be larger then the last one we inserted, we can set the fill factor to 100% and use all the space in the in the data pages. </span></span></span></p>
<p><span lang="EN-US"><span style="font-size:large;"><span style="font-family:Tahoma;">Also a relation like order-order_items (Order_ID, Order_Position) is a good candidate for a clustered index. Since the orders don’t change often, once they are created. And the typical access is usually performed by coming from an order. And you can retrieve all related information without the need for an extra table lookup. Also all the Information will be close together, since the data is stored in the Index leave nodes. So there is no need to load any other datapages to answer the order query.</span></span></span></p>
<p><span lang="EN-US"><span style="font-size:large;"><span style="font-family:Tahoma;">Something to note&#8230; If you create a primary key constraint on a table, SQL Server will automatically create a clustered index for you. This might not always be the optimal choice, so be aware of this.</span></span></span></p>
<p><span lang="EN-US"><span style="font-size:large;font-family:Tahoma;">So when should you create a clustered index? There is no right answer that can be given here. If it makes sense to keep the data together or if it will almost allways be retrieved in a &#8220;grouped&#8221; / aggregated way. So I would settle for a very general &#8220;It depends&#8230;&#8221; </span></span></p>
<p> </p>
<p><span lang="EN-US"><span style="font-size:large;"><span style="font-family:Tahoma;">That’s it for this post. I tried to keep it “simple”, so let me know if you like this style, or if you would prefer a more detailed approach with lots of SQL and DBCC statements etc… </span></span></span></p>
<p><span lang="EN-US"><span style="font-size:large;"><span style="font-family:Tahoma;">On the next post I will take a closer at the regular indexes, covering queries and filtered index in SQL 2008.</span></span></span></p>
<p><span lang="EN-US"><span style="font-size:large;font-family:Tahoma;">P.s.: This is not my 1st language&#8230; So have mercy <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </span></span></p>
<p><span lang="EN-US"><span style="font-size:large;font-family:Tahoma;"> </span></span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:14pt;" lang="EN-US"><span style="font-family:Tahoma;"> </span></span></p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/roadrunner74.wordpress.com/16/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/roadrunner74.wordpress.com/16/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/roadrunner74.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/roadrunner74.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/roadrunner74.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/roadrunner74.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/roadrunner74.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/roadrunner74.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/roadrunner74.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/roadrunner74.wordpress.com/16/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/roadrunner74.wordpress.com/16/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/roadrunner74.wordpress.com/16/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=roadrunner74.wordpress.com&blog=4011236&post=16&subd=roadrunner74&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://roadrunner74.wordpress.com/2008/07/09/sql-server-performance-indexing-101/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a03161ffd05ccf23031076e24982fbd3?s=96&#38;d=identicon" medium="image">
			<media:title type="html">Roadrunner</media:title>
		</media:content>
	</item>
		<item>
		<title>Dev 102 Interview Challenge 11</title>
		<link>http://roadrunner74.wordpress.com/2008/07/08/dev-102-interview-challenge-11/</link>
		<comments>http://roadrunner74.wordpress.com/2008/07/08/dev-102-interview-challenge-11/#comments</comments>
		<pubDate>Tue, 08 Jul 2008 11:53:37 +0000</pubDate>
		<dc:creator>Heiko Hatzfeld</dc:creator>
				<category><![CDATA[C#]]></category>

		<guid isPermaLink="false">http://roadrunner74.wordpress.com/?p=14</guid>
		<description><![CDATA[ 
This weeks question on „Dev102“ is:
 
Given a list of n integers and another integer called m, determine (true / false) if there exist 2 numbers in that list which sum up to m.
Example: 2,6,4,9,1,12,7 and m=14 -&#62; 2 and 12 sum up to 14, so the answer is true.
Provide the best algorithm in both manners: [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=roadrunner74.wordpress.com&blog=4011236&post=14&subd=roadrunner74&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p class="MsoNormal" style="margin:0;"><span style="font-family:Tahoma;"><span style="font-size:small;"> </span></span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-family:Tahoma;"><span style="font-size:small;">This weeks question on „<a title="Dev 102" href="http://www.dev102.com/misc/a-programming-job-interview-challenge-11-summing-numbers/" target="_blank">Dev102</a>“ is:</span></span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-family:Tahoma;"><span style="font-size:small;"> </span></span></p>
<p style="margin-left:35.4pt;"><span style="font-size:small;"><em><span style="font-family:Tahoma;">Given a list of n integers and another integer called m, determine (true / false) if there exist 2 numbers in that list which sum up to m.<br />
Example: 2,6,4,9,1,12,7 and m=14 -&gt; 2 and 12 sum up to 14, so the answer is true.<br />
Provide the best algorithm in both manners: performance and memory to solve this puzzle. </span></em><em><span style="font-family:Tahoma;">Don’t forget to mention the complexity of your solution!</span></em></span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-family:Tahoma;"><span style="font-size:small;"> </span></span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-family:Tahoma;"><span style="font-size:small;">So lets take a look at the different options we have…</span></span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-family:Tahoma;"><span style="font-size:small;"> </span></span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-family:Tahoma;"><span style="font-size:small;">The naïve approach would be to check every number with every other number. This would lead to N * (N-1) / 2 checks to find all possible combinations. And as you most likely guessed it, this is not the optimal approach.</span></span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-family:Tahoma;"><span style="font-size:small;"> </span></span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-family:Tahoma;"><span style="font-size:small;">So how can this be improved?</span></span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-family:Tahoma;"><span style="font-size:small;"> </span></span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-family:Tahoma;"><span style="font-size:small;">My 1<sup>st</sup> thought is again by sorting the input and the testing it more logically. I am still trying to wrap my mind around a solution that does not require me to sort the list, but it seems like this time there is no way around it.</span></span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-family:Tahoma;"><span style="font-size:small;"> </span></span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-family:Tahoma;"><span style="font-size:small;">So how would you test this more logically?</span></span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-family:Tahoma;"><span style="font-size:small;"> </span></span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-family:Tahoma;"><span style="font-size:small;">Since we now operate on a sorted list, we know that if we exceed the test for 2 given numbers in the list, then we can eliminate all further tests for that “row”. We close in from both sides until we found it.</span></span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-family:Tahoma;"><span style="font-size:small;"> </span></span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:small;"><span style="font-family:Tahoma;">Basically we can construct a result matrix that is also sorted, and by testing only the relevant points in this matrix we can eliminate all unneeded tests. For example the List {</span><span lang="EN-GB"><span style="font-family:Times New Roman;"> </span></span><span style="font-family:Tahoma;">5,8,11,15,23,25,29} would result in a Matrix like this:</span></span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-family:Tahoma;"><span style="font-size:small;"> </span></span></p>
<table class="MsoNormalTable" style="width:288pt;border-collapse:collapse;margin:auto auto auto 30.5pt;" border="0" cellspacing="0" cellpadding="0" width="384">
<tbody>
<tr style="height:12.75pt;">
<td style="width:32.25pt;height:12.75pt;background-color:transparent;border:windowtext 1pt solid;padding:0 3.5pt;" width="43" valign="bottom">
<p class="MsoNormal" style="text-align:center;margin:0;" align="center"><span style="font-size:10pt;font-family:Arial;">i</span></p>
</td>
<td style="border-right:windowtext 1pt solid;border-top:windowtext 1pt solid;border-left:#d4d0c8;width:39.75pt;border-bottom:windowtext 1pt solid;height:12.75pt;background-color:transparent;padding:0 3.5pt;" width="53" valign="bottom">
<p class="MsoNormal" style="text-align:center;margin:0;" align="center"><strong><span style="font-size:10pt;font-family:Arial;">5</span></strong></p>
</td>
<td style="border-right:windowtext 1pt solid;border-top:windowtext 1pt solid;border-left:#d4d0c8;width:36pt;border-bottom:windowtext 1pt solid;height:12.75pt;background-color:transparent;padding:0 3.5pt;" width="48" valign="bottom">
<p class="MsoNormal" style="text-align:center;margin:0;" align="center"><strong><span style="font-size:10pt;font-family:Arial;">8</span></strong></p>
</td>
<td style="border-right:windowtext 1pt solid;border-top:windowtext 1pt solid;border-left:#d4d0c8;width:36pt;border-bottom:windowtext 1pt solid;height:12.75pt;background-color:transparent;padding:0 3.5pt;" width="48" valign="bottom">
<p class="MsoNormal" style="text-align:center;margin:0;" align="center"><strong><span style="font-size:10pt;font-family:Arial;">11</span></strong></p>
</td>
<td style="border-right:windowtext 1pt solid;border-top:windowtext 1pt solid;border-left:#d4d0c8;width:36pt;border-bottom:windowtext 1pt solid;height:12.75pt;background-color:transparent;padding:0 3.5pt;" width="48" valign="bottom">
<p class="MsoNormal" style="text-align:center;margin:0;" align="center"><strong><span style="font-size:10pt;font-family:Arial;">15</span></strong></p>
</td>
<td style="border-right:windowtext 1pt solid;border-top:windowtext 1pt solid;border-left:#d4d0c8;width:36pt;border-bottom:windowtext 1pt solid;height:12.75pt;background-color:transparent;padding:0 3.5pt;" width="48" valign="bottom">
<p class="MsoNormal" style="text-align:center;margin:0;" align="center"><strong><span style="font-size:10pt;font-family:Arial;">23</span></strong></p>
</td>
<td style="border-right:windowtext 1pt solid;border-top:windowtext 1pt solid;border-left:#d4d0c8;width:36pt;border-bottom:windowtext 1pt solid;height:12.75pt;background-color:transparent;padding:0 3.5pt;" width="48" valign="bottom">
<p class="MsoNormal" style="text-align:center;margin:0;" align="center"><strong><span style="font-size:10pt;font-family:Arial;">25</span></strong></p>
</td>
<td style="border-right:windowtext 1pt solid;border-top:windowtext 1pt solid;border-left:#d4d0c8;width:36pt;border-bottom:windowtext 1pt solid;height:12.75pt;background-color:transparent;padding:0 3.5pt;" width="48" valign="bottom">
<p class="MsoNormal" style="text-align:center;margin:0;" align="center"><strong><span style="font-size:10pt;font-family:Arial;">29</span></strong></p>
</td>
</tr>
<tr style="height:12.75pt;">
<td style="border-right:windowtext 1pt solid;border-top:#d4d0c8;border-left:windowtext 1pt solid;width:32.25pt;border-bottom:windowtext 1pt solid;height:12.75pt;background-color:transparent;padding:0 3.5pt;" width="43" valign="bottom">
<p class="MsoNormal" style="text-align:center;margin:0;" align="center"><span style="font-size:10pt;font-family:Arial;">1</span></p>
</td>
<td style="border-right:windowtext 1pt solid;border-top:#d4d0c8;border-left:#d4d0c8;width:39.75pt;border-bottom:windowtext 1pt solid;height:12.75pt;background-color:transparent;padding:0 3.5pt;" width="53" valign="bottom">
<p class="MsoNormal" style="text-align:right;margin:0;" align="right"><span style="font-size:10pt;font-family:Arial;">13</span></p>
</td>
<td style="border-right:windowtext 1pt solid;border-top:#d4d0c8;border-left:#d4d0c8;width:36pt;border-bottom:windowtext 1pt solid;height:12.75pt;background-color:transparent;padding:0 3.5pt;" width="48" valign="bottom">
<p class="MsoNormal" style="text-align:right;margin:0;" align="right"><span style="font-size:10pt;font-family:Arial;">16</span></p>
</td>
<td style="border-right:windowtext 1pt solid;border-top:#d4d0c8;border-left:#d4d0c8;width:36pt;border-bottom:windowtext 1pt solid;height:12.75pt;background-color:transparent;padding:0 3.5pt;" width="48" valign="bottom">
<p class="MsoNormal" style="text-align:right;margin:0;" align="right"><span style="font-size:10pt;font-family:Arial;">20</span></p>
</td>
<td style="border-right:windowtext 1pt solid;border-top:#d4d0c8;border-left:#d4d0c8;width:36pt;border-bottom:windowtext 1pt solid;height:12.75pt;background-color:transparent;padding:0 3.5pt;" width="48" valign="bottom">
<p class="MsoNormal" style="text-align:right;margin:0;" align="right"><span style="font-size:10pt;font-family:Arial;">28</span></p>
</td>
<td style="border-right:windowtext 1pt solid;border-top:#d4d0c8;border-left:#d4d0c8;width:36pt;border-bottom:windowtext 1pt solid;height:12.75pt;background-color:transparent;padding:0 3.5pt;" width="48" valign="bottom">
<p class="MsoNormal" style="text-align:right;margin:0;" align="right"><span style="font-size:10pt;font-family:Arial;">30</span></p>
</td>
<td style="border-right:windowtext 1pt solid;border-top:#d4d0c8;border-left:#d4d0c8;width:36pt;border-bottom:windowtext 1pt solid;height:12.75pt;background-color:transparent;padding:0 3.5pt;" width="48" valign="bottom">
<p class="MsoNormal" style="text-align:right;margin:0;" align="right"><span style="font-size:10pt;font-family:Arial;">34</span></p>
</td>
<td style="border-right:windowtext 1pt solid;border-top:#d4d0c8;border-left:#d4d0c8;width:36pt;border-bottom:windowtext 1pt solid;height:12.75pt;background-color:transparent;padding:0 3.5pt;" width="48" valign="bottom">
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:Arial;"> </span></p>
</td>
</tr>
<tr style="height:12.75pt;">
<td style="border-right:windowtext 1pt solid;border-top:#d4d0c8;border-left:windowtext 1pt solid;width:32.25pt;border-bottom:windowtext 1pt solid;height:12.75pt;background-color:transparent;padding:0 3.5pt;" width="43" valign="bottom">
<p class="MsoNormal" style="text-align:center;margin:0;" align="center"><span style="font-size:10pt;font-family:Arial;">2</span></p>
</td>
<td style="border-right:windowtext 1pt solid;border-top:#d4d0c8;border-left:#d4d0c8;width:39.75pt;border-bottom:windowtext 1pt solid;height:12.75pt;background-color:transparent;padding:0 3.5pt;" width="53" valign="bottom">
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:Arial;"> </span></p>
</td>
<td style="border-right:windowtext 1pt solid;border-top:#d4d0c8;border-left:#d4d0c8;width:36pt;border-bottom:windowtext 1pt solid;height:12.75pt;background-color:transparent;padding:0 3.5pt;" width="48" valign="bottom">
<p class="MsoNormal" style="text-align:right;margin:0;" align="right"><span style="font-size:10pt;font-family:Arial;">19</span></p>
</td>
<td style="border-right:windowtext 1pt solid;border-top:#d4d0c8;border-left:#d4d0c8;width:36pt;border-bottom:windowtext 1pt solid;height:12.75pt;background-color:transparent;padding:0 3.5pt;" width="48" valign="bottom">
<p class="MsoNormal" style="text-align:right;margin:0;" align="right"><span style="font-size:10pt;font-family:Arial;">23</span></p>
</td>
<td style="border-right:windowtext 1pt solid;border-top:#d4d0c8;border-left:#d4d0c8;width:36pt;border-bottom:windowtext 1pt solid;height:12.75pt;background-color:transparent;padding:0 3.5pt;" width="48" valign="bottom">
<p class="MsoNormal" style="text-align:right;margin:0;" align="right"><span style="font-size:10pt;font-family:Arial;">31</span></p>
</td>
<td style="border-right:windowtext 1pt solid;border-top:#d4d0c8;border-left:#d4d0c8;width:36pt;border-bottom:windowtext 1pt solid;height:12.75pt;background-color:transparent;padding:0 3.5pt;" width="48" valign="bottom">
<p class="MsoNormal" style="text-align:right;margin:0;" align="right"><span style="font-size:10pt;font-family:Arial;">33</span></p>
</td>
<td style="border-right:windowtext 1pt solid;border-top:#d4d0c8;border-left:#d4d0c8;width:36pt;border-bottom:windowtext 1pt solid;height:12.75pt;background-color:transparent;padding:0 3.5pt;" width="48" valign="bottom">
<p class="MsoNormal" style="text-align:right;margin:0;" align="right"><span style="font-size:10pt;font-family:Arial;">37</span></p>
</td>
<td style="border-right:windowtext 1pt solid;border-top:#d4d0c8;border-left:#d4d0c8;width:36pt;border-bottom:windowtext 1pt solid;height:12.75pt;background-color:transparent;padding:0 3.5pt;" width="48" valign="bottom">
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:Arial;"> </span></p>
</td>
</tr>
<tr style="height:12.75pt;">
<td style="border-right:windowtext 1pt solid;border-top:#d4d0c8;border-left:windowtext 1pt solid;width:32.25pt;border-bottom:windowtext 1pt solid;height:12.75pt;background-color:transparent;padding:0 3.5pt;" width="43" valign="bottom">
<p class="MsoNormal" style="text-align:center;margin:0;" align="center"><span style="font-size:10pt;font-family:Arial;">3</span></p>
</td>
<td style="border-right:windowtext 1pt solid;border-top:#d4d0c8;border-left:#d4d0c8;width:39.75pt;border-bottom:windowtext 1pt solid;height:12.75pt;background-color:transparent;padding:0 3.5pt;" width="53" valign="bottom">
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:Arial;"> </span></p>
</td>
<td style="border-right:windowtext 1pt solid;border-top:#d4d0c8;border-left:#d4d0c8;width:36pt;border-bottom:windowtext 1pt solid;height:12.75pt;background-color:transparent;padding:0 3.5pt;" width="48" valign="bottom">
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:Arial;"> </span></p>
</td>
<td style="border-right:windowtext 1pt solid;border-top:#d4d0c8;border-left:#d4d0c8;width:36pt;border-bottom:windowtext 1pt solid;height:12.75pt;background-color:transparent;padding:0 3.5pt;" width="48" valign="bottom">
<p class="MsoNormal" style="text-align:right;margin:0;" align="right"><span style="font-size:10pt;font-family:Arial;">26</span></p>
</td>
<td style="border-right:windowtext 1pt solid;border-top:#d4d0c8;border-left:#d4d0c8;width:36pt;border-bottom:windowtext 1pt solid;height:12.75pt;background-color:transparent;padding:0 3.5pt;" width="48" valign="bottom">
<p class="MsoNormal" style="text-align:right;margin:0;" align="right"><span style="font-size:10pt;font-family:Arial;">34</span></p>
</td>
<td style="border-right:windowtext 1pt solid;border-top:#d4d0c8;border-left:#d4d0c8;width:36pt;border-bottom:windowtext 1pt solid;height:12.75pt;background-color:transparent;padding:0 3.5pt;" width="48" valign="bottom">
<p class="MsoNormal" style="text-align:right;margin:0;" align="right"><span style="font-size:10pt;font-family:Arial;">36</span></p>
</td>
<td style="border-right:windowtext 1pt solid;border-top:#d4d0c8;border-left:#d4d0c8;width:36pt;border-bottom:windowtext 1pt solid;height:12.75pt;background-color:transparent;padding:0 3.5pt;" width="48" valign="bottom">
<p class="MsoNormal" style="text-align:right;margin:0;" align="right"><span style="font-size:10pt;font-family:Arial;">40</span></p>
</td>
<td style="border-right:windowtext 1pt solid;border-top:#d4d0c8;border-left:#d4d0c8;width:36pt;border-bottom:windowtext 1pt solid;height:12.75pt;background-color:transparent;padding:0 3.5pt;" width="48" valign="bottom">
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:Arial;"> </span></p>
</td>
</tr>
<tr style="height:12.75pt;">
<td style="border-right:windowtext 1pt solid;border-top:#d4d0c8;border-left:windowtext 1pt solid;width:32.25pt;border-bottom:windowtext 1pt solid;height:12.75pt;background-color:transparent;padding:0 3.5pt;" width="43" valign="bottom">
<p class="MsoNormal" style="text-align:center;margin:0;" align="center"><span style="font-size:10pt;font-family:Arial;">4</span></p>
</td>
<td style="border-right:windowtext 1pt solid;border-top:#d4d0c8;border-left:#d4d0c8;width:39.75pt;border-bottom:windowtext 1pt solid;height:12.75pt;background-color:transparent;padding:0 3.5pt;" width="53" valign="bottom">
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:Arial;"> </span></p>
</td>
<td style="border-right:windowtext 1pt solid;border-top:#d4d0c8;border-left:#d4d0c8;width:36pt;border-bottom:windowtext 1pt solid;height:12.75pt;background-color:transparent;padding:0 3.5pt;" width="48" valign="bottom">
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:Arial;"> </span></p>
</td>
<td style="border-right:windowtext 1pt solid;border-top:#d4d0c8;border-left:#d4d0c8;width:36pt;border-bottom:windowtext 1pt solid;height:12.75pt;background-color:transparent;padding:0 3.5pt;" width="48" valign="bottom">
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:Arial;"> </span></p>
</td>
<td style="border-right:windowtext 1pt solid;border-top:#d4d0c8;border-left:#d4d0c8;width:36pt;border-bottom:windowtext 1pt solid;height:12.75pt;background-color:transparent;padding:0 3.5pt;" width="48" valign="bottom">
<p class="MsoNormal" style="text-align:right;margin:0;" align="right"><span style="font-size:10pt;font-family:Arial;">38</span></p>
</td>
<td style="border-right:windowtext 1pt solid;border-top:#d4d0c8;border-left:#d4d0c8;width:36pt;border-bottom:windowtext 1pt solid;height:12.75pt;background-color:transparent;padding:0 3.5pt;" width="48" valign="bottom">
<p class="MsoNormal" style="text-align:right;margin:0;" align="right"><span style="font-size:10pt;font-family:Arial;">40</span></p>
</td>
<td style="border-right:windowtext 1pt solid;border-top:#d4d0c8;border-left:#d4d0c8;width:36pt;border-bottom:windowtext 1pt solid;height:12.75pt;background-color:transparent;padding:0 3.5pt;" width="48" valign="bottom">
<p class="MsoNormal" style="text-align:right;margin:0;" align="right"><span style="font-size:10pt;font-family:Arial;">44</span></p>
</td>
<td style="border-right:windowtext 1pt solid;border-top:#d4d0c8;border-left:#d4d0c8;width:36pt;border-bottom:windowtext 1pt solid;height:12.75pt;background-color:transparent;padding:0 3.5pt;" width="48" valign="bottom">
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:Arial;"> </span></p>
</td>
</tr>
<tr style="height:12.75pt;">
<td style="border-right:windowtext 1pt solid;border-top:#d4d0c8;border-left:windowtext 1pt solid;width:32.25pt;border-bottom:windowtext 1pt solid;height:12.75pt;background-color:transparent;padding:0 3.5pt;" width="43" valign="bottom">
<p class="MsoNormal" style="text-align:center;margin:0;" align="center"><span style="font-size:10pt;font-family:Arial;">5</span></p>
</td>
<td style="border-right:windowtext 1pt solid;border-top:#d4d0c8;border-left:#d4d0c8;width:39.75pt;border-bottom:windowtext 1pt solid;height:12.75pt;background-color:transparent;padding:0 3.5pt;" width="53" valign="bottom">
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:Arial;"> </span></p>
</td>
<td style="border-right:windowtext 1pt solid;border-top:#d4d0c8;border-left:#d4d0c8;width:36pt;border-bottom:windowtext 1pt solid;height:12.75pt;background-color:transparent;padding:0 3.5pt;" width="48" valign="bottom">
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:Arial;"> </span></p>
</td>
<td style="border-right:windowtext 1pt solid;border-top:#d4d0c8;border-left:#d4d0c8;width:36pt;border-bottom:windowtext 1pt solid;height:12.75pt;background-color:transparent;padding:0 3.5pt;" width="48" valign="bottom">
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:Arial;"> </span></p>
</td>
<td style="border-right:windowtext 1pt solid;border-top:#d4d0c8;border-left:#d4d0c8;width:36pt;border-bottom:windowtext 1pt solid;height:12.75pt;background-color:transparent;padding:0 3.5pt;" width="48" valign="bottom">
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:Arial;"> </span></p>
</td>
<td style="border-right:windowtext 1pt solid;border-top:#d4d0c8;border-left:#d4d0c8;width:36pt;border-bottom:windowtext 1pt solid;height:12.75pt;background-color:transparent;padding:0 3.5pt;" width="48" valign="bottom">
<p class="MsoNormal" style="text-align:right;margin:0;" align="right"><span style="font-size:10pt;font-family:Arial;">48</span></p>
</td>
<td style="border-right:windowtext 1pt solid;border-top:#d4d0c8;border-left:#d4d0c8;width:36pt;border-bottom:windowtext 1pt solid;height:12.75pt;background-color:transparent;padding:0 3.5pt;" width="48" valign="bottom">
<p class="MsoNormal" style="text-align:right;margin:0;" align="right"><span style="font-size:10pt;font-family:Arial;">52</span></p>
</td>
<td style="border-right:windowtext 1pt solid;border-top:#d4d0c8;border-left:#d4d0c8;width:36pt;border-bottom:windowtext 1pt solid;height:12.75pt;background-color:transparent;padding:0 3.5pt;" width="48" valign="bottom">
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:Arial;"> </span></p>
</td>
</tr>
<tr style="height:12.75pt;">
<td style="border-right:windowtext 1pt solid;border-top:#d4d0c8;border-left:windowtext 1pt solid;width:32.25pt;border-bottom:windowtext 1pt solid;height:12.75pt;background-color:transparent;padding:0 3.5pt;" width="43" valign="bottom">
<p class="MsoNormal" style="text-align:center;margin:0;" align="center"><span style="font-size:10pt;font-family:Arial;">6</span></p>
</td>
<td style="border-right:windowtext 1pt solid;border-top:#d4d0c8;border-left:#d4d0c8;width:39.75pt;border-bottom:windowtext 1pt solid;height:12.75pt;background-color:transparent;padding:0 3.5pt;" width="53" valign="bottom">
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:Arial;"> </span></p>
</td>
<td style="border-right:windowtext 1pt solid;border-top:#d4d0c8;border-left:#d4d0c8;width:36pt;border-bottom:windowtext 1pt solid;height:12.75pt;background-color:transparent;padding:0 3.5pt;" width="48" valign="bottom">
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:Arial;"> </span></p>
</td>
<td style="border-right:windowtext 1pt solid;border-top:#d4d0c8;border-left:#d4d0c8;width:36pt;border-bottom:windowtext 1pt solid;height:12.75pt;background-color:transparent;padding:0 3.5pt;" width="48" valign="bottom">
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:Arial;"> </span></p>
</td>
<td style="border-right:windowtext 1pt solid;border-top:#d4d0c8;border-left:#d4d0c8;width:36pt;border-bottom:windowtext 1pt solid;height:12.75pt;background-color:transparent;padding:0 3.5pt;" width="48" valign="bottom">
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:Arial;"> </span></p>
</td>
<td style="border-right:windowtext 1pt solid;border-top:#d4d0c8;border-left:#d4d0c8;width:36pt;border-bottom:windowtext 1pt solid;height:12.75pt;background-color:transparent;padding:0 3.5pt;" width="48" valign="bottom">
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:Arial;"> </span></p>
</td>
<td style="border-right:windowtext 1pt solid;border-top:#d4d0c8;border-left:#d4d0c8;width:36pt;border-bottom:windowtext 1pt solid;height:12.75pt;background-color:transparent;padding:0 3.5pt;" width="48" valign="bottom">
<p class="MsoNormal" style="text-align:right;margin:0;" align="right"><span style="font-size:10pt;font-family:Arial;">54</span></p>
</td>
<td style="border-right:windowtext 1pt solid;border-top:#d4d0c8;border-left:#d4d0c8;width:36pt;border-bottom:windowtext 1pt solid;height:12.75pt;background-color:transparent;padding:0 3.5pt;" width="48" valign="bottom">
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:Arial;"> </span></p>
</td>
</tr>
<tr style="height:12.75pt;">
<td style="border-right:windowtext 1pt solid;border-top:#d4d0c8;border-left:windowtext 1pt solid;width:32.25pt;border-bottom:windowtext 1pt solid;height:12.75pt;background-color:transparent;padding:0 3.5pt;" width="43" valign="bottom">
<p class="MsoNormal" style="text-align:center;margin:0;" align="center"><span style="font-size:10pt;font-family:Arial;">j -&gt;</span></p>
</td>
<td style="border-right:windowtext 1pt solid;border-top:#d4d0c8;border-left:#d4d0c8;width:39.75pt;border-bottom:windowtext 1pt solid;height:12.75pt;background-color:transparent;padding:0 3.5pt;" width="53" valign="bottom">
<p class="MsoNormal" style="text-align:center;margin:0;" align="center"><span style="font-size:10pt;font-family:Arial;">2</span></p>
</td>
<td style="border-right:windowtext 1pt solid;border-top:#d4d0c8;border-left:#d4d0c8;width:36pt;border-bottom:windowtext 1pt solid;height:12.75pt;background-color:transparent;padding:0 3.5pt;" width="48" valign="bottom">
<p class="MsoNormal" style="text-align:center;margin:0;" align="center"><span style="font-size:10pt;font-family:Arial;">3</span></p>
</td>
<td style="border-right:windowtext 1pt solid;border-top:#d4d0c8;border-left:#d4d0c8;width:36pt;border-bottom:windowtext 1pt solid;height:12.75pt;background-color:transparent;padding:0 3.5pt;" width="48" valign="bottom">
<p class="MsoNormal" style="text-align:center;margin:0;" align="center"><span style="font-size:10pt;font-family:Arial;">4</span></p>
</td>
<td style="border-right:windowtext 1pt solid;border-top:#d4d0c8;border-left:#d4d0c8;width:36pt;border-bottom:windowtext 1pt solid;height:12.75pt;background-color:transparent;padding:0 3.5pt;" width="48" valign="bottom">
<p class="MsoNormal" style="text-align:center;margin:0;" align="center"><span style="font-size:10pt;font-family:Arial;">5</span></p>
</td>
<td style="border-right:windowtext 1pt solid;border-top:#d4d0c8;border-left:#d4d0c8;width:36pt;border-bottom:windowtext 1pt solid;height:12.75pt;background-color:transparent;padding:0 3.5pt;" width="48" valign="bottom">
<p class="MsoNormal" style="text-align:center;margin:0;" align="center"><span style="font-size:10pt;font-family:Arial;">6</span></p>
</td>
<td style="border-right:windowtext 1pt solid;border-top:#d4d0c8;border-left:#d4d0c8;width:36pt;border-bottom:windowtext 1pt solid;height:12.75pt;background-color:transparent;padding:0 3.5pt;" width="48" valign="bottom">
<p class="MsoNormal" style="text-align:center;margin:0;" align="center"><span style="font-size:10pt;font-family:Arial;">7</span></p>
</td>
<td style="border-right:windowtext 1pt solid;border-top:#d4d0c8;border-left:#d4d0c8;width:36pt;border-bottom:windowtext 1pt solid;height:12.75pt;background-color:transparent;padding:0 3.5pt;" width="48" valign="bottom">
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;color:#c0c0c0;font-family:Arial;"> </span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal" style="margin:0;"><span style="font-family:Tahoma;"><span style="font-size:small;"> </span></span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-family:Tahoma;"><span style="font-size:small;"> </span></span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-family:Tahoma;"><span style="font-size:small;">If we start with j = max and i = 1, we could zero in on the target number quite fast. </span></span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-family:Tahoma;"><span style="font-size:small;"> </span></span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-family:Tahoma;"><span style="font-size:small;"> </span></span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-family:Tahoma;"><span style="font-size:small;"> </span></span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-family:Tahoma;"><span style="font-size:small;"> </span></span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-family:Tahoma;"><span style="font-size:small;">For example if we look for 35 in the matrix (Which does not exist) we would have to do the following tests: (orange = to low, red = to high, green = eliminated since impossible)</span></span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-family:Tahoma;"><span style="font-size:small;"> </span></span></p>
<table class="MsoNormalTable" style="width:360pt;border-collapse:collapse;margin:auto auto auto 2.75pt;" border="0" cellspacing="0" cellpadding="0" width="480">
<tbody>
<tr style="height:12.75pt;">
<td style="width:60pt;height:12.75pt;background-color:transparent;border:#d4d0c8;padding:0 3.5pt;" width="80" valign="bottom">
<p class="MsoNormal" style="text-align:right;margin:0;" align="right"><span style="font-size:10pt;font-family:Arial;">5</span></p>
</td>
<td style="width:60pt;height:12.75pt;background-color:transparent;border:#d4d0c8;padding:0 3.5pt;" width="80" valign="bottom">
<p class="MsoNormal" style="text-align:right;margin:0;" align="right"><span style="font-size:10pt;font-family:Arial;">8</span></p>
</td>
<td style="width:60pt;height:12.75pt;background-color:transparent;border:#d4d0c8;padding:0 3.5pt;" width="80" valign="bottom">
<p class="MsoNormal" style="text-align:right;margin:0;" align="right"><span style="font-size:10pt;font-family:Arial;">11</span></p>
</td>
<td style="width:60pt;height:12.75pt;background-color:transparent;border:#d4d0c8;padding:0 3.5pt;" width="80" valign="bottom">
<p class="MsoNormal" style="text-align:right;margin:0;" align="right"><span style="font-size:10pt;font-family:Arial;">15</span></p>
</td>
<td style="width:60pt;height:12.75pt;background-color:transparent;border:#d4d0c8;padding:0 3.5pt;" width="80" valign="bottom">
<p class="MsoNormal" style="text-align:right;margin:0;" align="right"><span style="font-size:10pt;font-family:Arial;">23</span></p>
</td>
<td style="width:60pt;height:12.75pt;background-color:transparent;border:#d4d0c8;padding:0 3.5pt;" width="80" valign="bottom">
<p class="MsoNormal" style="text-align:right;margin:0;" align="right"><span style="font-size:10pt;font-family:Arial;">25</span></p>
</td>
</tr>
<tr style="height:12.75pt;">
<td style="background:lime;width:60pt;height:12.75pt;border:#d4d0c8;padding:0 3.5pt;" width="80" valign="bottom">
<p class="MsoNormal" style="text-align:right;margin:0;" align="right"><span style="font-size:10pt;font-family:Arial;">13</span></p>
</td>
<td style="background:lime;width:60pt;height:12.75pt;border:#d4d0c8;padding:0 3.5pt;" width="80" valign="bottom">
<p class="MsoNormal" style="text-align:right;margin:0;" align="right"><span style="font-size:10pt;font-family:Arial;">16</span></p>
</td>
<td style="background:lime;width:60pt;height:12.75pt;border:#d4d0c8;padding:0 3.5pt;" width="80" valign="bottom">
<p class="MsoNormal" style="text-align:right;margin:0;" align="right"><span style="font-size:10pt;font-family:Arial;">20</span></p>
</td>
<td style="background:lime;width:60pt;height:12.75pt;border:#d4d0c8;padding:0 3.5pt;" width="80" valign="bottom">
<p class="MsoNormal" style="text-align:right;margin:0;" align="right"><span style="font-size:10pt;font-family:Arial;">28</span></p>
</td>
<td style="background:lime;width:60pt;height:12.75pt;border:#d4d0c8;padding:0 3.5pt;" width="80" valign="bottom">
<p class="MsoNormal" style="text-align:right;margin:0;" align="right"><span style="font-size:10pt;font-family:Arial;">30</span></p>
</td>
<td style="background:#ff9900;width:60pt;height:12.75pt;border:#d4d0c8;padding:0 3.5pt;" width="80" valign="bottom">
<p class="MsoNormal" style="text-align:right;margin:0;" align="right"><span style="font-size:10pt;font-family:Arial;">34</span></p>
</td>
</tr>
<tr style="height:12.75pt;">
<td style="background:lime;width:60pt;height:12.75pt;border:#d4d0c8;padding:0 3.5pt;" width="80" valign="bottom">
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:Arial;"> </span></p>
</td>
<td style="background:lime;width:60pt;height:12.75pt;border:#d4d0c8;padding:0 3.5pt;" width="80" valign="bottom">
<p class="MsoNormal" style="text-align:right;margin:0;" align="right"><span style="font-size:10pt;font-family:Arial;">19</span></p>
</td>
<td style="background:lime;width:60pt;height:12.75pt;border:#d4d0c8;padding:0 3.5pt;" width="80" valign="bottom">
<p class="MsoNormal" style="text-align:right;margin:0;" align="right"><span style="font-size:10pt;font-family:Arial;">23</span></p>
</td>
<td style="background:lime;width:60pt;height:12.75pt;border:#d4d0c8;padding:0 3.5pt;" width="80" valign="bottom">
<p class="MsoNormal" style="text-align:right;margin:0;" align="right"><span style="font-size:10pt;font-family:Arial;">31</span></p>
</td>
<td style="background:#ff9900;width:60pt;height:12.75pt;border:#d4d0c8;padding:0 3.5pt;" width="80" valign="bottom">
<p class="MsoNormal" style="text-align:right;margin:0;" align="right"><span style="font-size:10pt;font-family:Arial;">33</span></p>
</td>
<td style="background:red;width:60pt;height:12.75pt;border:#d4d0c8;padding:0 3.5pt;" width="80" valign="bottom">
<p class="MsoNormal" style="text-align:right;margin:0;" align="right"><span style="font-size:10pt;font-family:Arial;">37</span></p>
</td>
</tr>
<tr style="height:12.75pt;">
<td style="width:60pt;height:12.75pt;background-color:transparent;border:#d4d0c8;padding:0 3.5pt;" width="80" valign="bottom">
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:Arial;"> </span></p>
</td>
<td style="width:60pt;height:12.75pt;background-color:transparent;border:#d4d0c8;padding:0 3.5pt;" width="80" valign="bottom">
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:Arial;"> </span></p>
</td>
<td style="background:lime;width:60pt;height:12.75pt;border:#d4d0c8;padding:0 3.5pt;" width="80" valign="bottom">
<p class="MsoNormal" style="text-align:right;margin:0;" align="right"><span style="font-size:10pt;font-family:Arial;">26</span></p>
</td>
<td style="background:#ff9900;width:60pt;height:12.75pt;border:#d4d0c8;padding:0 3.5pt;" width="80" valign="bottom">
<p class="MsoNormal" style="text-align:right;margin:0;" align="right"><span style="font-size:10pt;font-family:Arial;">34</span></p>
</td>
<td style="background:red;width:60pt;height:12.75pt;border:#d4d0c8;padding:0 3.5pt;" width="80" valign="bottom">
<p class="MsoNormal" style="text-align:right;margin:0;" align="right"><span style="font-size:10pt;font-family:Arial;">36</span></p>
</td>
<td style="background:lime;width:60pt;height:12.75pt;border:#d4d0c8;padding:0 3.5pt;" width="80" valign="bottom">
<p class="MsoNormal" style="text-align:right;margin:0;" align="right"><span style="font-size:10pt;font-family:Arial;">40</span></p>
</td>
</tr>
<tr style="height:12.75pt;">
<td style="width:60pt;height:12.75pt;background-color:transparent;border:#d4d0c8;padding:0 3.5pt;" width="80" valign="bottom">
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:Arial;"> </span></p>
</td>
<td style="width:60pt;height:12.75pt;background-color:transparent;border:#d4d0c8;padding:0 3.5pt;" width="80" valign="bottom">
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:Arial;"> </span></p>
</td>
<td style="width:60pt;height:12.75pt;background-color:transparent;border:#d4d0c8;padding:0 3.5pt;" width="80" valign="bottom">
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:Arial;"> </span></p>
</td>
<td style="background:red;width:60pt;height:12.75pt;border:#d4d0c8;padding:0 3.5pt;" width="80" valign="bottom">
<p class="MsoNormal" style="text-align:right;margin:0;" align="right"><span style="font-size:10pt;font-family:Arial;">38</span></p>
</td>
<td style="background:lime;width:60pt;height:12.75pt;border:#d4d0c8;padding:0 3.5pt;" width="80" valign="bottom">
<p class="MsoNormal" style="text-align:right;margin:0;" align="right"><span style="font-size:10pt;font-family:Arial;">40</span></p>
</td>
<td style="background:lime;width:60pt;height:12.75pt;border:#d4d0c8;padding:0 3.5pt;" width="80" valign="bottom">
<p class="MsoNormal" style="text-align:right;margin:0;" align="right"><span style="font-size:10pt;font-family:Arial;">44</span></p>
</td>
</tr>
<tr style="height:12.75pt;">
<td style="width:60pt;height:12.75pt;background-color:transparent;border:#d4d0c8;padding:0 3.5pt;" width="80" valign="bottom">
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:Arial;"> </span></p>
</td>
<td style="width:60pt;height:12.75pt;background-color:transparent;border:#d4d0c8;padding:0 3.5pt;" width="80" valign="bottom">
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:Arial;"> </span></p>
</td>
<td style="width:60pt;height:12.75pt;background-color:transparent;border:#d4d0c8;padding:0 3.5pt;" width="80" valign="bottom">
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:Arial;"> </span></p>
</td>
<td style="width:60pt;height:12.75pt;background-color:transparent;border:#d4d0c8;padding:0 3.5pt;" width="80" valign="bottom">
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:Arial;"> </span></p>
</td>
<td style="background:lime;width:60pt;height:12.75pt;border:#d4d0c8;padding:0 3.5pt;" width="80" valign="bottom">
<p class="MsoNormal" style="text-align:right;margin:0;" align="right"><span style="font-size:10pt;font-family:Arial;">48</span></p>
</td>
<td style="background:lime;width:60pt;height:12.75pt;border:#d4d0c8;padding:0 3.5pt;" width="80" valign="bottom">
<p class="MsoNormal" style="text-align:right;margin:0;" align="right"><span style="font-size:10pt;font-family:Arial;">52</span></p>
</td>
</tr>
<tr style="height:12.75pt;">
<td style="width:60pt;height:12.75pt;background-color:transparent;border:#d4d0c8;padding:0 3.5pt;" width="80" valign="bottom">
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:Arial;"> </span></p>
</td>
<td style="width:60pt;height:12.75pt;background-color:transparent;border:#d4d0c8;padding:0 3.5pt;" width="80" valign="bottom">
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:Arial;"> </span></p>
</td>
<td style="width:60pt;height:12.75pt;background-color:transparent;border:#d4d0c8;padding:0 3.5pt;" width="80" valign="bottom">
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:Arial;"> </span></p>
</td>
<td style="width:60pt;height:12.75pt;background-color:transparent;border:#d4d0c8;padding:0 3.5pt;" width="80" valign="bottom">
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:Arial;"> </span></p>
</td>
<td style="background:lime;width:60pt;height:12.75pt;border:#d4d0c8;padding:0 3.5pt;" width="80" valign="bottom">
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;font-family:Arial;"> </span></p>
</td>
<td style="background:lime;width:60pt;height:12.75pt;border:#d4d0c8;padding:0 3.5pt;" width="80" valign="bottom">
<p class="MsoNormal" style="text-align:right;margin:0;" align="right"><span style="font-size:10pt;font-family:Arial;">54</span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal" style="margin:0;"><span style="font-family:Tahoma;"><span style="font-size:small;"> </span></span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-family:Tahoma;"><span style="font-size:small;"> </span></span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-family:Tahoma;"><span style="font-size:small;">The actual source for this problem is:</span></span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-family:Tahoma;"><span style="font-size:small;"> </span></span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;background:black;color:#d2d200;font-family:Consolas;"><span>        </span></span><strong><span style="font-size:10pt;background:black;color:#eaeaac;font-family:Consolas;">private</span></strong><span style="font-size:10pt;background:black;color:#d2d200;font-family:Consolas;"> </span><strong><span style="font-size:10pt;background:black;color:#eaeaac;font-family:Consolas;">bool</span></strong><span style="font-size:10pt;background:black;color:#d2d200;font-family:Consolas;"> </span><span style="font-size:10pt;background:black;color:#f8ffc6;font-family:Consolas;">findPair</span><span style="font-size:10pt;background:black;color:#d2d200;font-family:Consolas;">(</span><strong><span style="font-size:10pt;background:black;color:#eaeaac;font-family:Consolas;">int</span></strong><span style="font-size:10pt;background:black;color:#d2d200;font-family:Consolas;">[] </span><span style="font-size:10pt;background:black;color:#f8ffc6;font-family:Consolas;">data</span><span style="font-size:10pt;background:black;color:#d2d200;font-family:Consolas;">, </span><strong><span style="font-size:10pt;background:black;color:#eaeaac;font-family:Consolas;">int</span></strong><span style="font-size:10pt;background:black;color:#d2d200;font-family:Consolas;"> </span><span style="font-size:10pt;background:black;color:#f8ffc6;font-family:Consolas;">target</span><span style="font-size:10pt;background:black;color:#d2d200;font-family:Consolas;">)</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;background:black;color:#d2d200;font-family:Consolas;"><span>        </span>{</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;background:black;color:#d2d200;font-family:Consolas;"><span>            </span></span><span style="font-size:10pt;background:black;color:#f0dfaf;font-family:Consolas;">Array</span><span style="font-size:10pt;background:black;color:#d2d200;font-family:Consolas;">.</span><span style="font-size:10pt;background:black;color:#f8ffc6;font-family:Consolas;">Sort</span><span style="font-size:10pt;background:black;color:#d2d200;font-family:Consolas;">(</span><span style="font-size:10pt;background:black;color:#f8ffc6;font-family:Consolas;">data</span><span style="font-size:10pt;background:black;color:#d2d200;font-family:Consolas;">);</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;background:black;color:#d2d200;font-family:Consolas;"><span>            </span></span><strong><span style="font-size:10pt;background:black;color:#eaeaac;font-family:Consolas;">int</span></strong><span style="font-size:10pt;background:black;color:#d2d200;font-family:Consolas;"> </span><span style="font-size:10pt;background:black;color:#f8ffc6;font-family:Consolas;">i</span><span style="font-size:10pt;background:black;color:#d2d200;font-family:Consolas;"> = </span><span style="font-size:10pt;background:black;color:#8acccf;font-family:Consolas;">0</span><span style="font-size:10pt;background:black;color:#d2d200;font-family:Consolas;">;</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;background:black;color:#d2d200;font-family:Consolas;"><span>            </span></span><strong><span style="font-size:10pt;background:black;color:#eaeaac;font-family:Consolas;">int</span></strong><span style="font-size:10pt;background:black;color:#d2d200;font-family:Consolas;"> </span><span style="font-size:10pt;background:black;color:#f8ffc6;font-family:Consolas;">j</span><span style="font-size:10pt;background:black;color:#d2d200;font-family:Consolas;"> = </span><span style="font-size:10pt;background:black;color:#f8ffc6;font-family:Consolas;">data</span><span style="font-size:10pt;background:black;color:#d2d200;font-family:Consolas;">.</span><span style="font-size:10pt;background:black;color:#f8ffc6;font-family:Consolas;">GetUpperBound</span><span style="font-size:10pt;background:black;color:#d2d200;font-family:Consolas;">(</span><span style="font-size:10pt;background:black;color:#8acccf;font-family:Consolas;">0</span><span style="font-size:10pt;background:black;color:#d2d200;font-family:Consolas;">);</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;background:black;color:#d2d200;font-family:Consolas;"> </span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;background:black;color:#d2d200;font-family:Consolas;"><span>            </span></span><strong><span style="font-size:10pt;background:black;color:#eaeaac;font-family:Consolas;">while</span></strong><span style="font-size:10pt;background:black;color:#d2d200;font-family:Consolas;">(</span><span style="font-size:10pt;background:black;color:#f8ffc6;font-family:Consolas;">i</span><span style="font-size:10pt;background:black;color:#d2d200;font-family:Consolas;">&lt;</span><span style="font-size:10pt;background:black;color:#f8ffc6;font-family:Consolas;">j</span><span style="font-size:10pt;background:black;color:#d2d200;font-family:Consolas;">)</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;background:black;color:#d2d200;font-family:Consolas;"><span>            </span>{</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;background:black;color:#d2d200;font-family:Consolas;"><span>                </span></span><strong><span style="font-size:10pt;background:black;color:#eaeaac;font-family:Consolas;">int</span></strong><span style="font-size:10pt;background:black;color:#d2d200;font-family:Consolas;"> </span><span style="font-size:10pt;background:black;color:#f8ffc6;font-family:Consolas;">current</span><span style="font-size:10pt;background:black;color:#d2d200;font-family:Consolas;"> = </span><span style="font-size:10pt;background:black;color:#f8ffc6;font-family:Consolas;">data</span><span style="font-size:10pt;background:black;color:#d2d200;font-family:Consolas;">[</span><span style="font-size:10pt;background:black;color:#f8ffc6;font-family:Consolas;">i</span><span style="font-size:10pt;background:black;color:#d2d200;font-family:Consolas;">] + </span><span style="font-size:10pt;background:black;color:#f8ffc6;font-family:Consolas;">data</span><span style="font-size:10pt;background:black;color:#d2d200;font-family:Consolas;">[</span><span style="font-size:10pt;background:black;color:#f8ffc6;font-family:Consolas;">j</span><span style="font-size:10pt;background:black;color:#d2d200;font-family:Consolas;">];</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;background:black;color:#d2d200;font-family:Consolas;"><span>                </span></span><strong><span style="font-size:10pt;background:black;color:#eaeaac;font-family:Consolas;">if</span></strong><span style="font-size:10pt;background:black;color:#d2d200;font-family:Consolas;"> (</span><span style="font-size:10pt;background:black;color:#f8ffc6;font-family:Consolas;">current</span><span style="font-size:10pt;background:black;color:#d2d200;font-family:Consolas;"> &gt; </span><span style="font-size:10pt;background:black;color:#f8ffc6;font-family:Consolas;">target</span><span style="font-size:10pt;background:black;color:#d2d200;font-family:Consolas;">)</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;background:black;color:#d2d200;font-family:Consolas;"><span>                    </span></span><span style="font-size:10pt;background:black;color:#f8ffc6;font-family:Consolas;">j</span><span style="font-size:10pt;background:black;color:#d2d200;font-family:Consolas;"> -= </span><span style="font-size:10pt;background:black;color:#8acccf;font-family:Consolas;">1</span><span style="font-size:10pt;background:black;color:#d2d200;font-family:Consolas;">;</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;background:black;color:#d2d200;font-family:Consolas;"><span>                </span></span><strong><span style="font-size:10pt;background:black;color:#eaeaac;font-family:Consolas;">else</span></strong><span style="font-size:10pt;background:black;color:#d2d200;font-family:Consolas;"> </span><strong><span style="font-size:10pt;background:black;color:#eaeaac;font-family:Consolas;">if</span></strong><span style="font-size:10pt;background:black;color:#d2d200;font-family:Consolas;"> (</span><span style="font-size:10pt;background:black;color:#f8ffc6;font-family:Consolas;">current</span><span style="font-size:10pt;background:black;color:#d2d200;font-family:Consolas;"> &lt; </span><span style="font-size:10pt;background:black;color:#f8ffc6;font-family:Consolas;">target</span><span style="font-size:10pt;background:black;color:#d2d200;font-family:Consolas;">)</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;background:black;color:#d2d200;font-family:Consolas;"><span>                    </span></span><span style="font-size:10pt;background:black;color:#f8ffc6;font-family:Consolas;">i</span><span style="font-size:10pt;background:black;color:#d2d200;font-family:Consolas;"> += </span><span style="font-size:10pt;background:black;color:#8acccf;font-family:Consolas;">1</span><span style="font-size:10pt;background:black;color:#d2d200;font-family:Consolas;">;</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;background:black;color:#d2d200;font-family:Consolas;"><span>                </span></span><strong><span style="font-size:10pt;background:black;color:#eaeaac;font-family:Consolas;">else</span></strong></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;background:black;color:#d2d200;font-family:Consolas;"><span>                    </span></span><strong><span style="font-size:10pt;background:black;color:#eaeaac;font-family:Consolas;">return</span></strong><span style="font-size:10pt;background:black;color:#d2d200;font-family:Consolas;"> </span><strong><span style="font-size:10pt;background:black;color:#eaeaac;font-family:Consolas;">true</span></strong><span style="font-size:10pt;background:black;color:#d2d200;font-family:Consolas;">;</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;background:black;color:#d2d200;font-family:Consolas;"><span>            </span>}</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;background:black;color:#d2d200;font-family:Consolas;"><span>            </span></span><strong><span style="font-size:10pt;background:black;color:#eaeaac;font-family:Consolas;">return</span></strong><span style="font-size:10pt;background:black;color:#d2d200;font-family:Consolas;"> </span><strong><span style="font-size:10pt;background:black;color:#eaeaac;font-family:Consolas;">false</span></strong><span style="font-size:10pt;background:black;color:#d2d200;font-family:Consolas;">;</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-size:10pt;background:black;color:#d2d200;font-family:Consolas;"><span>        </span></span><span style="font-size:10pt;background:black;color:#d2d200;font-family:Consolas;">}</span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-family:Tahoma;"><span style="font-size:small;"> </span></span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-family:Tahoma;"><span style="font-size:small;"> </span></span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-family:Tahoma;"><span style="font-size:small;">You could also add an additional test at the beginning, that validates that there is a possible solution at all (checking if the 2 biggest numbers in the sorted list are bigger then the target number) But this would depend on the actual data that has to be processed. If that happens a lot, then you could even move this test to the pre-sort stage and simplify it to target &lt; 2 * maxValueInList. </span></span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-family:Tahoma;"><span style="font-size:small;"> </span></span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-family:Tahoma;"><span style="font-size:small;">The overall complexity for this problem would be the cost of sorting + O(N).</span></span></p>
<p class="MsoNormal" style="margin:0;"><span style="font-family:Tahoma;"><span style="font-size:small;"> </span></span></p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/roadrunner74.wordpress.com/14/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/roadrunner74.wordpress.com/14/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/roadrunner74.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/roadrunner74.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/roadrunner74.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/roadrunner74.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/roadrunner74.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/roadrunner74.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/roadrunner74.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/roadrunner74.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/roadrunner74.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/roadrunner74.wordpress.com/14/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=roadrunner74.wordpress.com&blog=4011236&post=14&subd=roadrunner74&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://roadrunner74.wordpress.com/2008/07/08/dev-102-interview-challenge-11/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a03161ffd05ccf23031076e24982fbd3?s=96&#38;d=identicon" medium="image">
			<media:title type="html">Roadrunner</media:title>
		</media:content>
	</item>
		<item>
		<title>Become a SQL-Server 2008 beta test Tester</title>
		<link>http://roadrunner74.wordpress.com/2008/07/03/become-a-sql-server-2008-beta-test-tester/</link>
		<comments>http://roadrunner74.wordpress.com/2008/07/03/become-a-sql-server-2008-beta-test-tester/#comments</comments>
		<pubDate>Thu, 03 Jul 2008 12:21:31 +0000</pubDate>
		<dc:creator>Heiko Hatzfeld</dc:creator>
				<category><![CDATA[SQL Server]]></category>

		<guid isPermaLink="false">http://roadrunner74.wordpress.com/?p=8</guid>
		<description><![CDATA[Free tests for SQL Server 2008 from Microsoft...<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=roadrunner74.wordpress.com&blog=4011236&post=8&subd=roadrunner74&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Microsoft posted an open invitation for 2 SQL-Server 2008 exams (71-432 and 71-448).</p>
<p>You can take those exams for free, and if you manage to pass them, you will be given full credit for them (MSTS).</p>
<p>However, you will have to wait until the &#8220;real&#8221; exams are out to find out if you passed or not. So use this opertunity, and read up on all the great features in SQL2008 and go pass the exams&#8230;</p>
<p>So here is the Information from MS (shameless Cut&amp;Paste) :</p>
<p> </p>
<p>Below, you will find two beta exams invitations for SQL Server 2008 DBA 71-432 and SQL Server 2008 BI 71-448.</p>
<p>These exams will be available until July 31, 2008.</p>
<h3>71-432 &#8211; Promo code 943F6</h3>
<p>You are invited to take beta exam 71-432: TS: Microsoft SQL Server 2008, Implementation and Maintenance. You were specifically chosen to participate in this beta because of your current Microsoft Certification status or previous participation with Microsoft Learning. If you pass the beta exam, the exam credit will be added to your transcript and you will not need to take the exam in its released form. The 71-xxx identifier is used for registering for beta versions of MCP exams, when the exam is released in its final form the 70-xxx identifier is used for registration.<br />
By participating in beta exams, you have the opportunity to provide the Microsoft Certification program with feedback about exam content, which is integral to development of exams in their released version. We depend on the contributions of experienced IT professionals and developers as we continually improve exam content and maintain the value of Microsoft certifications.</p>
<p>71-432: TS: Microsoft SQL Server 2008, Implementation and Maintenance counts as credit towards the following certification(s).</p>
<p>· Microsoft Certified Technology Specialist: SQL Server 2008, Implementation and Maintenance</p>
<p><a title="EDABAAAA" name="EDABAAAA"></a></p>
<hr size="1" noshade="noshade" /><strong>Availability</strong></p>
<p>Registration begins: June 5, 2008</p>
<p>Beta exam period runs: June 9, 2008– July 31, 2008</p>
<p>Receiving this invitation does not guarantee you a seat in the beta; we recommend that you register immediately. Beta exams have limited availability and are operated under a first-come-first-served basis. Once all beta slots are filled, no additional seats will be offered.</p>
<p>Testing is held at Prometric testing centers worldwide, although this exam may not be available in all countries (see Regional Restrictions).  All testing centers will have the capability to offer this exam in its live version.</p>
<p>Regional Restrictions: India, Pakistan, China</p>
<hr size="1" noshade="noshade" />
<h3>71-448 &#8211; Promo code B6543</h3>
<p>You are invited to take beta exam 71-448: TS: Microsoft SQL Server 2008, Business Intelligence Development and Maintenance. You were specifically chosen to participate in this beta because of your current Microsoft Certification status or previous participation with Microsoft Learning. If you pass the beta exam, the exam credit will be added to your transcript and you will not need to take the exam in its released form. The 71-xxx identifier is used for registering for beta versions of MCP exams, when the exam is released in its final form the 70-xxx identifier is used for registration.<br />
By participating in beta exams, you have the opportunity to provide the Microsoft Certification program with feedback about exam content, which is integral to development of exams in their released version. We depend on the contributions of experienced IT professionals and developers as we continually improve exam content and maintain the value of Microsoft certifications.</p>
<p>71-448: TS: Microsoft SQL Server 2008, Business Intelligence Development and Maintenance counts as credit towards the following certification(s).</p>
<p>· Microsoft Certified Technology Specialist: SQL Server 2008, Business Intelligence Development and Maintenance</p>
<p><a title="EDABAAAA" name="EDABAAAA"></a></p>
<hr size="1" noshade="noshade" /><strong>Availability</strong></p>
<p>Registration begins: June 15, 2008</p>
<p>Beta exam period runs: June 16, 2008– July 31, 2008</p>
<p>Receiving this invitation does not guarantee you a seat in the beta; we recommend that you register immediately. Beta exams have limited availability and are operated under a first-come-first-served basis. Once all beta slots are filled, no additional seats will be offered.</p>
<p>Testing is held at Prometric testing centers worldwide, although this exam may not be available in all countries (see Regional Restrictions).  All testing centers will have the capability to offer this exam in its live version.</p>
<p>Regional Restrictions: India, Pakistan, China</p>
<hr size="1" noshade="noshade" /><a title="ECABAAAA" name="ECABAAAA"></a><strong>Registration Information</strong></p>
<p>You must register at least 24 hours prior to taking the exam.<br />
Please use the following promotional code when registering for the exam: 943F6<br />
Receiving this invitation does not guarantee you a seat in the beta; we recommend that you register immediately.</p>
<p>To register in North America, please call:</p>
<p>•</p>
<p>Prometric: (800) 755-EXAM (800-755-3926)</p>
<p>Outside the U.S./Canada, please contact:</p>
<p>•</p>
<p>Prometric: <a href="http://www.register.prometric.com/ClientInformation.asp">http://www.register.prometric.com/ClientInformation.asp</a></p>
<p><a title="EBABAAAA" name="EBABAAAA"></a></p>
<hr size="1" noshade="noshade" /><strong>Test Information and Support</strong></p>
<p>You are invited to take this beta exam at no charge.<br />
You will be given four hours to complete the beta exam. Please plan accordingly.<br />
Find exam preparation information: <a href="http://www.microsoft.com/learning/exams/70-432.mspx">http://www.microsoft.com/learning/exams/70-432.mspx</a></p>
<p> </p>
<p> </p>
<p>This information was found on:</p>
<p><a href="http://blogs.msdn.com/gerryo">http://blogs.msdn.com/gerryo</a></p>
<p> </p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/roadrunner74.wordpress.com/8/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/roadrunner74.wordpress.com/8/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/roadrunner74.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/roadrunner74.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/roadrunner74.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/roadrunner74.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/roadrunner74.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/roadrunner74.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/roadrunner74.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/roadrunner74.wordpress.com/8/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/roadrunner74.wordpress.com/8/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/roadrunner74.wordpress.com/8/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=roadrunner74.wordpress.com&blog=4011236&post=8&subd=roadrunner74&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://roadrunner74.wordpress.com/2008/07/03/become-a-sql-server-2008-beta-test-tester/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a03161ffd05ccf23031076e24982fbd3?s=96&#38;d=identicon" medium="image">
			<media:title type="html">Roadrunner</media:title>
		</media:content>
	</item>
		<item>
		<title>How about something personal?</title>
		<link>http://roadrunner74.wordpress.com/2008/06/23/how-about-something-personal/</link>
		<comments>http://roadrunner74.wordpress.com/2008/06/23/how-about-something-personal/#comments</comments>
		<pubDate>Mon, 23 Jun 2008 17:17:35 +0000</pubDate>
		<dc:creator>Heiko Hatzfeld</dc:creator>
				<category><![CDATA[personal]]></category>

		<guid isPermaLink="false">http://roadrunner74.wordpress.com/?p=5</guid>
		<description><![CDATA[
I decided I would stay away from work today. The reason for this is called Benjamin, and he weights 3500 grams and
 
 is 54 cm long.
 
He was born at 11:52 and is my 3rd child (1st son after 2 girls (6 &#38; 3))
 
 

       <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=roadrunner74.wordpress.com&blog=4011236&post=5&subd=roadrunner74&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p><a href="http://roadrunner74.files.wordpress.com/2008/06/kind_mit_papa_klein1.jpg"><img class="wp-image-7 alignleft" src="http://roadrunner74.files.wordpress.com/2008/06/kind_mit_papa_klein1.jpg?w=225&#038;h=300" alt="" width="225" height="300" /></a></p>
<p>I decided I would stay away from work today. The reason for this is called Benjamin, and he weights 3500 grams and</p>
<p><a href="http://roadrunner74.files.wordpress.com/2008/06/kind_mit_papa_klein1.jpg"></a> </p>
<p> is 54 cm long.</p>
<p> </p>
<p>He was born at 11:52 and is my 3rd child (1st son after 2 girls (6 &amp; 3))</p>
<p> </p>
<p> </p>
<p><a href="http://roadrunner74.files.wordpress.com/2008/06/kind_mit_papa_klein1.jpg"></a></p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/roadrunner74.wordpress.com/5/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/roadrunner74.wordpress.com/5/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/roadrunner74.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/roadrunner74.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/roadrunner74.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/roadrunner74.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/roadrunner74.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/roadrunner74.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/roadrunner74.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/roadrunner74.wordpress.com/5/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/roadrunner74.wordpress.com/5/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/roadrunner74.wordpress.com/5/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=roadrunner74.wordpress.com&blog=4011236&post=5&subd=roadrunner74&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://roadrunner74.wordpress.com/2008/06/23/how-about-something-personal/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a03161ffd05ccf23031076e24982fbd3?s=96&#38;d=identicon" medium="image">
			<media:title type="html">Roadrunner</media:title>
		</media:content>

		<media:content url="http://roadrunner74.files.wordpress.com/2008/06/kind_mit_papa_klein1.jpg?w=225" medium="image" />
	</item>
		<item>
		<title>Dev102 &#8211; Needle in a Haystack</title>
		<link>http://roadrunner74.wordpress.com/2008/06/23/dev102-needle-in-a-haystack/</link>
		<comments>http://roadrunner74.wordpress.com/2008/06/23/dev102-needle-in-a-haystack/#comments</comments>
		<pubDate>Mon, 23 Jun 2008 16:00:35 +0000</pubDate>
		<dc:creator>Heiko Hatzfeld</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[Generics]]></category>

		<guid isPermaLink="false">http://roadrunner74.wordpress.com/?p=3</guid>
		<description><![CDATA[Hello World&#8230; got deleted!
So here is my 1st real post in my Blog.
This is the response to &#8220;A Programming Job Interview Challenge #8 &#8211; A Needle in a Haystack&#8220;
The question was about designing a queue that will create an alert when a certain pattern is found within the input. There are some more minor constrains, which [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=roadrunner74.wordpress.com&blog=4011236&post=3&subd=roadrunner74&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Hello World&#8230; got deleted!</p>
<p>So here is my 1st real post in my Blog.</p>
<p>This is the response to &#8220;<a title="A Programming Job Interview Challenge #8 - A Needle in a Haystack" href="http://www.dev102.com/net/a-programming-job-interview-challenge-8-a-needle-in-a-haystack/"><span style="color:#680812;">A Programming Job Interview Challenge #8 &#8211; A Needle in a Haystack</span></a>&#8220;</p>
<p>The question was about designing a queue that will create an alert when a certain pattern is found within the input. There are some more minor constrains, which you can check in the original post(Main constrain is that you cannot store the recieved data).</p>
<p>I am writing a C# implementation for this.</p>
<p>Explanation of the code:</p>
<p>The calls requires a pattern in the constructor. The pattern is then stored internally for further reference.</p>
<p>The main problem in this task is that we need to keep track of all possible matches that could happen. Take this pattern  &#8220;A A A B&#8221; and this input &#8220;A A A A A B&#8221;. When we get the 1st A we could have a possible match. But when we get to the 4th A, the match failed. But the match that started from the 2nd and 3rd A are still in a valid state. So we have to treat each letter as a potential start for a match. And each potential match has to be evaluated separate. To keep the state of each possible match you could use all kinds of possible datastructures.  I choose a generic list of enumerators. It is not the smallest possible structure I could have picked, but i think it is quite nice (you could also use an array of ints and increment each field as you need to match the next value&#8230;).</p>
<p>When a new chunk of data comes in, it will fetch an enumerator from the internal &#8220;pattern list&#8221;, and moves it onto the 1st position. Then it will add it to a 2nd internal List. This list will hold all &#8220;active&#8221; tests. After that is done, the class will try to validate all active pattern matches. If the match was OK, it will move the current enumerator to the next item to test. We have a positive match if we cannot move the enumerator, since we matched all items in the list.</p>
<p>If we fail to match a test, then we quite simply discard the current enumerator.</p>
<p>The maximum number of &#8220;concurrent tests&#8221; is limited to the size of the pattern. So for a 4-Element Pattern we would get a maximum of 4 concurrent tests.</p>
<p>The receive Function is not thread save, since we expect a lot of &#8220;sequential&#8221; input. The handling should be left to the calling function, or a thread save wrapper.</p>
<p> </p>
<p>Example pattern: foo bar foo foo</p>
<p>Example input: foo bar foo foo bar foo foo</p>
<p>Result: 4-foo &amp; 7-foo</p>
<p>Code:</p>
<blockquote>
<div>    internal class MatchingQueue&lt;T&gt; where T : IEquatable&lt;T&gt;<br />
    {</div>
<div>        private readonly List&lt;T&gt; target;<br />
        private readonly List&lt;IEnumerator&lt;T&gt;&gt; currentMatcher = new List&lt;IEnumerator&lt;T&gt;&gt;();<br />
        private int counter = 0;</div>
<div>        public event EventHandler&lt;MatchingEventArgs&gt; MatchFound;</div>
<div> </div>
<div>        public MatchingQueue(T[] targetSequence)<br />
        {<br />
            if (targetSequence.GetUpperBound(0)&lt;0)<br />
                throw new InvalidDataException(&#8220;Need at least 1 entry in order to match anything&#8230;.&#8221;);<br />
            target = new List&lt;T&gt;(targetSequence);<br />
        }</div>
<div> </div>
<div>        public void Receive(T data)<br />
        {<br />
            counter++;<br />
           <br />
            IEnumerator&lt;T&gt; newTest = target.GetEnumerator();<br />
            currentMatcher.Add(newTest);<br />
            newTest.MoveNext();<br />
            foreach (IEnumerator&lt;T&gt; tester in currentMatcher.ToArray())<br />
            {<br />
               if (tester.Current.Equals(data))<br />
               {<br />
                   if (!tester.MoveNext())<br />
                   {<br />
                       //No more tests&#8230; We have to report and remove<br />
                       Report(data);<br />
                       currentMatcher.Remove(tester);<br />
                   }<br />
                      <br />
               }<br />
               else<br />
                   //failed to match&#8230; Kick it<br />
                   currentMatcher.Remove(tester);<br />
            }<br />
            //TODO: Foreward it to next Queue.</div>
<div>        }</div>
<div> </div>
<div> </div>
<div>        private void Report(T data)<br />
        {<br />
            EventHandler&lt;MatchingEventArgs&gt; temp = MatchFound;<br />
            if (temp != null)<br />
                temp(this, new MatchingEventArgs(data,counter));<br />
        }</div>
<div> </div>
<div>        public class MatchingEventArgs : EventArgs<br />
        {<br />
            private readonly T match;<br />
            private readonly int counter;</div>
<div>            public MatchingEventArgs(T match, int counter)<br />
            {<br />
                this.match = match;<br />
                this.counter = counter;<br />
            }</div>
<div>            public int Counter<br />
            {<br />
                get { return counter; }<br />
            }</div>
<div>            public T Message<br />
            {<br />
                get { return match; }<br />
            }<br />
        }</div>
<div>    }</div>
</blockquote>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/roadrunner74.wordpress.com/3/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/roadrunner74.wordpress.com/3/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/roadrunner74.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/roadrunner74.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/roadrunner74.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/roadrunner74.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/roadrunner74.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/roadrunner74.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/roadrunner74.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/roadrunner74.wordpress.com/3/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/roadrunner74.wordpress.com/3/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/roadrunner74.wordpress.com/3/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=roadrunner74.wordpress.com&blog=4011236&post=3&subd=roadrunner74&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://roadrunner74.wordpress.com/2008/06/23/dev102-needle-in-a-haystack/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/a03161ffd05ccf23031076e24982fbd3?s=96&#38;d=identicon" medium="image">
			<media:title type="html">Roadrunner</media:title>
		</media:content>
	</item>
	</channel>
</rss>