如何计算正面的价值观,而做堆排序?这里是我的堆排序,我指望他们在一个循环的方法,但它需要做排序时。是如何形成的?
:TCPMem
void Sift(int arr[], int left, int right)
{
int i, j, x;
i = left;
j = 2 * i + 1;
x = arr[i];
while (j <= right)
{
if(j < right)
if(arr[j] < arr[j + 1]) j++;
if (x >= arr[j]) break;
arr[i] = arr[j];
i = j;
j = 2 * i + 1;
}
arr[i] = x;
}
void HeapSort(int arr[], int n)
{
int left, right, temp;
left = n / 2 + 1;
right = n - 1;
while (0 < left)
{
left--;
Sift(arr, left, right);
}
while (0 < right)
{
temp = arr[left];
arr[left] = arr[right];
arr[right] = temp;
right--;
Sift(arr, left, right);
}
for(int i = 0; i < n; i++)
if(0 < arr[i]) PosCount++;
}