void HeapSort(int list[], int n) {

  int num = n, i = n/2, parent, child;

  int t;


  for(;;){

    if(i > 0){

      i--;

      t = list[i];

    }

    else{

      n--;

      if(n == 0) return;

      t = list[n];

      list[n] = list[0];

    }


    parent = i;

    child = i * 2 + 1;


    while(child < n){

      if(child + 1 < n && list[child + 1] > list[child]){

        child++;

      }

      if(list[child] > t){

        list[parent] = list[child];

        parent = child;

        child = parent * 2 + 1;

      }

      else{

        break;

      }

    }

    list[parent] = t;

  }

}



도대체 이게 어떻게 봐야 힙정렬이야? 

펜굴리면서 계속 쓱삭쓱삭 하고 있는데 어떻게 풀어여? 똑똑한 고수님드라 ㅠ 알려줘여