diff --git a/csharp-algorithms/InsertionSort/InsertionSort/InsertionSort.csproj b/csharp-algorithms/InsertionSort/InsertionSort/InsertionSort.csproj
index 79e7148fd0..62be4f867f 100644
--- a/csharp-algorithms/InsertionSort/InsertionSort/InsertionSort.csproj
+++ b/csharp-algorithms/InsertionSort/InsertionSort/InsertionSort.csproj
@@ -2,13 +2,13 @@
Exe
- net6.0
+ net10.0
enable
enable
-
+
diff --git a/csharp-algorithms/InsertionSort/InsertionSort/InsertionSortBenchmarks.cs b/csharp-algorithms/InsertionSort/InsertionSort/InsertionSortBenchmarks.cs
new file mode 100644
index 0000000000..3a8a890bcd
--- /dev/null
+++ b/csharp-algorithms/InsertionSort/InsertionSort/InsertionSortBenchmarks.cs
@@ -0,0 +1,45 @@
+using BenchmarkDotNet.Attributes;
+
+namespace InsertionSort;
+
+public class InsertionSortBenchmarks
+{
+ private readonly InsertionSortMethods _sortFunction = new();
+ private int[] _source = [];
+ private int[] _work = [];
+
+ [Params(100, 1_000, 10_000)]
+ public int Size { get; set; }
+
+ [Params("Random", "Sorted", "Reversed")]
+ public string Input { get; set; } = "Random";
+
+ [GlobalSetup]
+ public void Setup()
+ {
+ _source = Input switch
+ {
+ "Sorted" => InsertionSortMethods.CreateSortedArray(Size),
+ "Reversed" => InsertionSortMethods.CreateReversedArray(
+ InsertionSortMethods.CreateSortedArray(Size)),
+ _ => InsertionSortMethods.CreateRandomArray(Size)
+ };
+ _work = new int[Size];
+ }
+
+ [Benchmark]
+ public int[] SortArray()
+ {
+ _source.CopyTo(_work, 0);
+
+ return _sortFunction.SortArray(_work, _work.Length);
+ }
+
+ [Benchmark]
+ public int[] SortArrayRecursive()
+ {
+ _source.CopyTo(_work, 0);
+
+ return _sortFunction.SortArrayRecursive(_work, _work.Length);
+ }
+}
diff --git a/csharp-algorithms/InsertionSort/InsertionSort/InsertionSortMethods.cs b/csharp-algorithms/InsertionSort/InsertionSort/InsertionSortMethods.cs
index a98d9cd81e..747ad3c9bc 100644
--- a/csharp-algorithms/InsertionSort/InsertionSort/InsertionSortMethods.cs
+++ b/csharp-algorithms/InsertionSort/InsertionSort/InsertionSortMethods.cs
@@ -1,100 +1,76 @@
-using BenchmarkDotNet.Attributes;
+namespace InsertionSort;
-namespace InsertionSort
+public class InsertionSortMethods
{
- public class InsertionSortMethods
+ public int[] SortArray(int[] array, int length)
{
- public IEnumerable