HeapSort megírásához valami tibb? Valamiért nem jó.
void bubbleSort()
{
//numbers = new int[] { 30, 25, 20, 32, 29, 37, 20, 24 };
for (int i = N - 1; i >= 0; i--) Heapify(numbers,i);//buildarray
Console.WriteLine(numbers[N-1]+"a"+( N - 1));
while (N>0)
{
N--;
Swap(numbers, 0, N);
Heapify(numbers,0);
}
}
void Heapify(int[] arr,int parent)
{
/*int left = parent * 2 + 1;
int right = parent * 2 + 2;
int largest = -1;
if (left<=arr.Length-1)
{
largest = left;
}
if (right <= arr.Length-1 && arr[left] < arr[right])
{
largest = right;
}
if (largest >-1 parent && arr[parent] < arr[largest])
{
Swap(arr, arr[parent], arr[largest]);
Heapify(arr, largest);
}*/
int largest = -1;
int left;
int right;
left = 2 * parent + 1;
right = 2 * parent + 2;
if (left < N)
{
largest = left;
}
if (right < N && arr[right] > arr[left])
{
largest = right;
}
if (largest > -1 && arr[parent] < arr[largest])
{
Swap(arr, parent, largest);
Heapify(numbers,largest);
}
}
private void Swap(int[] arr, int largest, int parent)//function to swap elements
{
int tmp;
tmp = arr[largest];
arr[largest] = arr[parent];
arr[parent] = tmp;
Console.Write("|"+arr[largest] + "| <-> |" + arr[parent]+"|");
}
Te lehetsz az első, aki segít a kérdezőnek!
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!