Skip to content

Instantly share code, notes, and snippets.

@hsynkrcf
Created June 21, 2024 00:43
Show Gist options
  • Save hsynkrcf/50af11db0853754d8f8dfb2758ed323b to your computer and use it in GitHub Desktop.
Save hsynkrcf/50af11db0853754d8f8dfb2758ed323b to your computer and use it in GitHub Desktop.
Heap Sort Algorithm Performed On C#
public int[] HeapSort(int[] arr)
{
int n = arr.Length;
for (int i = n / 2 - 1; i >= 0; i--)
Heapify(arr, n, i);
for (int i = n - 1; i >= 0; i--)
{
int temp = arr[0];
arr[0] = arr[i];
arr[i] = temp;
Heapify(arr, i, 0);
}
return arr;
}
private void Heapify(int[] arr, int n, int i)
{
int largest = i;
int left = 2 * i + 1;
int right = 2 * i + 2;
if (left < n && arr[left] > arr[largest])
largest = left;
if (right < n && arr[right] > arr[largest])
largest = right;
if (largest != i)
{
int swap = arr[i];
arr[i] = arr[largest];
arr[largest] = swap;
Heapify(arr, n, largest);
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment