Skip to content

Insertion sort: .NET 10 and a benchmark that copies its input per call - #2375

Merged
vladimir-pecanac-main merged 2 commits into
CodeMazeBlog:mainfrom
vladimir-pecanac-main:seo/69254-insertion-sort-csharp
Nov 11, 2026
Merged

vladimir-pecanac-main merged 2 commits into
CodeMazeBlog:mainfrom
vladimir-pecanac-main:seo/69254-insertion-sort-csharp

Conversation

@vladimir-pecanac-main

Copy link
Copy Markdown
Collaborator

Moves csharp-algorithms/InsertionSort to net10.0 with BenchmarkDotNet 0.15.8, MSTest 4.5.2, Microsoft.NET.Test.Sdk 18.11.0 and coverlet.collector 10.1.0. The old benchmark sorted the same array instance on every call, so after the first call every row measured an already-sorted array; the new InsertionSortBenchmarks class copies a fresh source into a working array on each call, at sizes 100, 1,000 and 10,000 for random, sorted and reversed input. The sort methods drop the benchmark-only arrayName parameter so they match the article, the tests use (expected, actual) order, and a new data-driven test checks both versions against Array.Sort.

Both projects target net10.0 with BenchmarkDotNet 0.15.8, MSTest 4.5.2, Microsoft.NET.Test.Sdk 18.11.0 and coverlet.collector 10.1.0. The benchmark moves to its own InsertionSortBenchmarks class that copies a never-sorted source array into a working array on every call, so random and reversed rows no longer measure already-sorted data. The sort methods lose the benchmark-only arrayName parameter and now match the article. Tests use (expected, actual) order and a new data-driven test compares both versions with Array.Sort.
@vladimir-pecanac-main
vladimir-pecanac-main merged commit c9449f4 into CodeMazeBlog:main Nov 11, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant