chore(CSharp): added linear search algorithm (#393)
Co-authored-by: Kreienbrink <isabelle.kreienbrink@corebts.com>pull/394/head
parent
969bfa9387
commit
c72de71551
|
@ -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
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue