chore(CSharp): added linear search algorithm (#393)

Co-authored-by: Kreienbrink <isabelle.kreienbrink@corebts.com>
pull/394/head
izzykreie 2021-07-23 09:35:57 -04:00 committed by GitHub
parent 969bfa9387
commit c72de71551
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 74 additions and 7 deletions

View File

@ -1,11 +1,11 @@
 
Microsoft Visual Studio Solution File, Format Version 12.00 Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15 # Visual Studio Version 16
VisualStudioVersion = 15.0.26124.0 VisualStudioVersion = 16.0.31515.178
MinimumVisualStudioVersion = 15.0.26124.0 MinimumVisualStudioVersion = 15.0.26124.0
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Algorithms", "src\Algorithms.csproj", "{EDD3C753-58A5-4844-81EA-3E9BD6A1D2F6}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Algorithms", "src\Algorithms.csproj", "{EDD3C753-58A5-4844-81EA-3E9BD6A1D2F6}"
EndProject EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Algorithms.Tests", "test\Algorithms.Tests.csproj", "{8E5D96D1-0618-4A33-9AF6-95D1D8F14E5A}" Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Algorithms.Tests", "test\Algorithms.Tests.csproj", "{8E5D96D1-0618-4A33-9AF6-95D1D8F14E5A}"
EndProject EndProject
Global Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution GlobalSection(SolutionConfigurationPlatforms) = preSolution
@ -16,9 +16,6 @@ Global
Release|x64 = Release|x64 Release|x64 = Release|x64
Release|x86 = Release|x86 Release|x86 = Release|x86
EndGlobalSection EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution GlobalSection(ProjectConfigurationPlatforms) = postSolution
{EDD3C753-58A5-4844-81EA-3E9BD6A1D2F6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {EDD3C753-58A5-4844-81EA-3E9BD6A1D2F6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{EDD3C753-58A5-4844-81EA-3E9BD6A1D2F6}.Debug|Any CPU.Build.0 = Debug|Any CPU {EDD3C753-58A5-4844-81EA-3E9BD6A1D2F6}.Debug|Any CPU.Build.0 = Debug|Any CPU
@ -45,4 +42,10 @@ Global
{8E5D96D1-0618-4A33-9AF6-95D1D8F14E5A}.Release|x86.ActiveCfg = Release|Any CPU {8E5D96D1-0618-4A33-9AF6-95D1D8F14E5A}.Release|x86.ActiveCfg = Release|Any CPU
{8E5D96D1-0618-4A33-9AF6-95D1D8F14E5A}.Release|x86.Build.0 = Release|Any CPU {8E5D96D1-0618-4A33-9AF6-95D1D8F14E5A}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {1E2EF90C-20D0-42F0-9EC4-13C6B0374477}
EndGlobalSection
EndGlobal EndGlobal

View File

@ -12,6 +12,7 @@ For running the `.cs` file please using [.Net Finddle](https://dotnetfiddle.net/
## Search ## Search
- [Binary Search](src/Search/binary-search.cs) - [Binary Search](src/Search/binary-search.cs)
- [Linear Search](src/Search/linear-search.cs)
## Maths ## Maths
- [Abundant Number](src/Maths/abundant-number.cs) - [Abundant Number](src/Maths/abundant-number.cs)

View File

@ -0,0 +1,36 @@
using System;
namespace Algorithms.Search
{
public class LinearSearch
{
public static void Main()
{
int[] numbers = { 1, 2, 3, 4, 5 };
int searchNumber = 3;
int indexOfSearchNumber = Search(numbers, searchNumber);
if (indexOfSearchNumber == -1)
{
Console.WriteLine("The number you are searching for does not exist in this list.");
}
else
{
Console.WriteLine("The number you are searching for is at index: " + indexOfSearchNumber);
}
}
public static int Search(int[] numbers, int searchNumber)
{
int indexOfSearchNumber = -1;
for(int index = 0; index < numbers.Length; index++)
{
if (numbers[index] == searchNumber)
{
indexOfSearchNumber = index;
}
}
return indexOfSearchNumber;
}
}
}

View File

@ -0,0 +1,27 @@
using NUnit.Framework;
using Algorithms.Search;
namespace Algorithms.Tests.Search
{
[TestFixture]
class LinearSearchTest
{
int[] numbers = { 1, 2, 3, 4, 5 };
[TestCase(4, 3)]
[TestCase(5, 4)]
public void GivenASearchNumber_ShouldGetMatchingIndexInList(int searchNumber, int expectedIndexOfSearchTerm)
{
int actualIndexOfSearchTerm = LinearSearch.Search(numbers, searchNumber);
Assert.AreEqual(expectedIndexOfSearchTerm, actualIndexOfSearchTerm);
}
[TestCase(6)]
[TestCase(0)]
public void GivenASearchNumberNotInTheList_ShouldReturnNegativeOne(int searchNumber)
{
int actualIndexOfSearchTerm = LinearSearch.Search(numbers, searchNumber);
Assert.AreEqual(-1, actualIndexOfSearchTerm);
}
}
}