今のプログラムの状態だと昇順にソートされます。降順に変更したいのですがどこを変更していいのか分かりません。
void downheap(int from,int to){ int i, j; int val; val = a[from]; i = from; while (i <= to/2){ j = i*2; if (j+1 <= to && a[j] > a[j+1]) j++; comp++; if(val <= a[j]) break; a[i] = a[j]; i = j; } a[i] = val; } void heapsort(){ int i; int tmp; for (i = n/2; i >= 1; i--) downheap(i,n); for (i = n; i >= 2; i--){ swap++; tmp = a[1]; a[1] = a[i]; a[i] = tmp; downheap(1, i-1); } }
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。