C#에서 ShellSort를 사용하여 배열을 정렬하는 쉬운 방법이 필요합니다. 도와주세요.classwork - shellsort in C#?
답변
셸 정렬을 사용하십시오.
난 그냥 거의 죽음 : –
에 숨 막혀 gr8 질문에 대한 답변 : – TalentTuner
DoYourOwnHomework와 Arthur는이 질문을했을 때 둘 다 1 위를 차지했습니다. 그러나 DoYourOwnHomework는 정말로 담당자를 꽉꽉 채웠습니다! –
코드를 작성하는 사람은 아무도 없습니다. 너는 배울 것이있어. 나는 다음과 같은 조치를 취할 것 :
에 알고리즘에 대한 psuedocode을 찾습니다. 그것이 무엇을 이해할 때까지 읽으십시오.
psuedocode를 C#으로 포트하십시오.
구현하는 동안 문제가 있으면 언제든지 다시 질문하고 구체적인 질문을하십시오.
4. 구현 중에 문제가 있으면 언제든지 다시 질문하고 구체적인 질문을하십시오. – Donnie
5. 슬프게도, 그래서, 누군가 그를 위해 코드를 작성하려고합니다 ... –
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;
}
참조를 참조하십시오 : [자바 구현은] (http://stackoverflow.com/questions/12767588/time-complexity-for-shell-sort) – nawfal