SinusSoftware.SortCollection
1.5.0
dotnet add package SinusSoftware.SortCollection --version 1.5.0
NuGet\Install-Package SinusSoftware.SortCollection -Version 1.5.0
<PackageReference Include="SinusSoftware.SortCollection" Version="1.5.0" />
<PackageVersion Include="SinusSoftware.SortCollection" Version="1.5.0" />
<PackageReference Include="SinusSoftware.SortCollection" />
paket add SinusSoftware.SortCollection --version 1.5.0
#r "nuget: SinusSoftware.SortCollection, 1.5.0"
#:package SinusSoftware.SortCollection@1.5.0
#addin nuget:?package=SinusSoftware.SortCollection&version=1.5.0
#tool nuget:?package=SinusSoftware.SortCollection&version=1.5.0
SortCollection
SortCollection is a dll with different sorting algorithms. Currently supported:
- Bubblesort
- Selectionsort
- Insertionsort
- Heapsort
- Mergesort
- Countingsort
- Shellsort with different gap sequences
- Radixsort with different bit numbers (2, 4, 8, 16) for group
- Slowsort
- Introsort
- Timsort
- Shakersort
- Quicksort
- parallel Quicksort (Multi-Threading, Asynchron)
- parallel Mergesort (Multi-Threading, Asynchron)
Installation
Use the package manager Nuget to install SortCollection.
Usage
public class SortDescending : IComparer<int>
{
public int Compare(int a, int b)
{
if (a > b)
return -1;
if (a < b)
return 1;
else
return 0;
}
}
public class Car
{
private int year;
private string make;
public Car(string make, int year)
{
this.make = make;
this.year = year;
}
public int Year
{
get { return year; }
set { year = value; }
}
public string Make
{
get { return make; }
set { make = value; }
}
}
List<int> integers = new()
{
4,
7,
2,
1,
8,
9,
3,
6,
5
};
List<Car>() cars = new()
{
new Car("Ford",1992),
new Car("Fiat",1988),
new Car("Buick",1932),
new Car("VW", 2020),
new Car("Renault",2015),
new Car("Toyota",2006),
new Car("Nissan",2018),
new Car("Dodge",1999),
new Car("Honda",1977)
};
# Example Bubblesort
var bubbleSortedList = integers.SortWithBubbleSort();
# Example Selectionsort with customcompare
var selectionSortedList = integers.SortWithSelectionSort(new SortDescending());
# Example Insertionsort with range
var insertionSortedList = integers.SortWithInsertionSort(2, 6);
# Example Heapsort with range and customcompare
var heapSortedList = integers.SortWithHeapSort(2, 6, new SortDescending());
# Example Contingsort with Object "Car"
var countingSortedList = cars.SortWithCountingSort(car => car.Year);
# Example Radixsort with range and Object "Car"
var radixSortedList = cars.SortWithRadixSort(2, 6, car => car.Year);
# Example ParallelQuickSort descending
var parallelQuickSortedListDescending = integers.SortWithParallelQuickSortDescending();
# Eyample ParallelMergeSortAsync with CancellationToken
var cts = new CancellationTokenSource();
var sortedList = await cancelationTokenIntegers.SortWithParallelMergeSortAsync(cts.Token);
Contributing
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
Please make sure to update tests as appropriate.
License
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 is compatible. net5.0-windows was computed. net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 is compatible. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- No dependencies.
-
net5.0
- No dependencies.
-
net6.0
- No dependencies.
-
net7.0
- No dependencies.
-
net8.0
- No dependencies.
-
net9.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
This is release 1.5 with following changes:
* Add Targetframework .Net10.0
* Add descending function for Countingsort
* Add descending function for Radixsort
* Add property signature (Func<TSource, TKey>) for Introsort
* Add property signature (Func<TSource, TKey>) for Timsort
* Add Quicksort
* Add parallel Quicksort (Multi-Threading, Asynchron)
* Add parallel Mergesort (Multi-Threading, Asynchron)