Wie verbessert man die Leistung dieses Sortieralgorithmus? Gibt es hier einen ähnlichen Algorithmus?
Posted: 23 Feb 2025, 15:12
Ich hatte eine Vorstellung von einem neuen Sortieralgorithmus, der sich teilt und erobert, indem er einen zufälligen Index aufnimmt und das Array in zwei separate Arrays aufteilt. Algorithmusarbeit? Es funktioniert tatsächlich, aber es ist sehr langsam, kann mir jemand ein paar Hinweise geben, wie man die Leistung dieses Algorithmus verbessern und vielleicht erklärt, warum und wie es funktioniert? (Der wichtige Teil ist die Sortiermethode.) < /p>
Code: Select all
class Program
{
static Random random = new Random();
public static void Main()
{
int[] array = GenerateRandomArray(101);
int[] sortedArray = Sort(array);
var sortedByLinq = array.OrderBy(x => x).ToArray();
while (!sortedArray.SequenceEqual(sortedByLinq))
{
sortedArray = Sort(sortedArray);
foreach (var item in sortedArray)
{
Console.Write(item + ",");
}
Console.WriteLine("next");
}
}
static int[] Sort(int[] array)
{
var length = array.Length;
if (length == 1)
{
return array;
}
if (length == 2)
{
var rigthorder = array[0]