J'ai besoin d'un moyen facile de trier un tableau en utilisant ShellSort en C#, aidez-moi s'il vous plaîttravail en classe - shellsort en C#?
Répondre
Utilisez le tri de shell.
Je viens presque étranglée à mort :) –
gr8 réponse à la question gr8 :) – TalentTuner
DoYourOwnHomework et Arthur étaient tous deux classés 1 lorsque cette question a été posée. Mais DoYourOwnHomework a vraiment accumulé la rep !! –
Personne ne va écrire votre code pour vous. Vous êtes là pour apprendre. Je prendrais les étapes suivantes:
Aller à Wikipedia's Shell Sort Page
Trouvez la psuedocode pour l'algorithme. Lisez-le jusqu'à ce que vous compreniez ce qu'il fait.
Placez le code-source sur C#.
Si vous avez un problème lors de la mise en œuvre, n'hésitez pas à revenir et à poser des questions spécifiques.
4. Si vous avez un problème lors de la mise en œuvre, n'hésitez pas à revenir et à poser des questions spécifiques. – Donnie
5. Malheureusement, sachant SO, quelqu'un va écrire le code pour lui ... –
public static int[] shellSort(int[] ar)
{
//this gaps array works but is not unique
int[] gaps = new int[] { 1, 4, 10, 23, 57, 132, 301, 701 };
gaps = gaps.Reverse().ToArray();
Func<int, int, bool> potentialSwitch = (ind1, ind2) =>
{
if (ar[ind2] < ar[ind1])
{
int temp = ar[ind2];
ar[ind2] = ar[ind1];
ar[ind1] = temp;
return true;
}
return false;
};
foreach (int gap in gaps)
{
if (gap >= ar.Length)
continue;
for (int i = 0; i + gap < ar.Length; i++)
{
int j = i;
while (potentialSwitch(j, j + gap))
{
j -= gap;
if (j < 0)
break;
}
}
}
return ar;
}
Voir pour référence: [implémentation java] (http://stackoverflow.com/questions/12767588/time-complexity-for-shell-sort) – nawfal