public void SimpleTest() { List <Chunk> chunks = new List <Chunk>() { new Chunk() { StartOffset = 1, EndOffset = 2, ID = 1 }, new Chunk() { StartOffset = 3, EndOffset = 5, ID = 2 }, new Chunk() { StartOffset = 6, EndOffset = 8, ID = 3 }, new Chunk() { StartOffset = 9, EndOffset = 12, ID = 4 }, new Chunk() { StartOffset = 15, EndOffset = 18, ID = 5 }, }; int iterationsCount = 0; int targetOffset = 3; var resutChunk = ChunkFinder.BinarySearch(chunks, targetOffset, out iterationsCount); Console.WriteLine("looking for chunk with a startoffset {0} in a list of {1} chunks", targetOffset, chunks.Count); Console.WriteLine("result:{0}", resutChunk.ToString()); Console.WriteLine("found in {0} iterations", iterationsCount); }
public void Improved1MEndList() { int count = 1000000; List <Chunk> chunks = GenerateChunksSimple(count); int iterationsCount = 0; int targetOffset = 1000000 * 2; var resutChunk = ChunkFinder.BinarySearchImproved(chunks, targetOffset, out iterationsCount); Console.WriteLine("looking for chunk with a startoffset {0} in a list of {1} chunks", targetOffset, count); Console.WriteLine("result:{0}", resutChunk.ToString()); Console.WriteLine("found in {0} iterations", iterationsCount); }