[問題] C++ heap sort 的問題
void Adjust ( int tree[] , int i , int n )
{
int j = 2 * i , k = tree [i] , done ;
done = FALSE ;
while ( j <= n && !done ) //當 j 小於等於 n 且 不等於 done 執行
{
if ( ( j < n) && ( tree[i] < tree[j] ) ) //若 ( j 小於 n )
且 ( tree[i] 小於 tree[j] )
j++; //則 j + 1
if ( k >= tree[j] ) //若 k 小於等於 tree[j]
done = TRUE ; // 則 done 等於 TRUE
else // k 小於 tree[j]
{
tree[j >> 1] = tree[j] //
j << = 1 ;
}
}
}
void Heapsort ( int r[] , int n )
{
int i , t ;
for ( i = ( n >> 1 ) ; i >= 0 ; i-- ) //迴圈條件 : 起始 i 等於 (
n >> 1) 且 i 大於等於 0
, 每做一次 i 遞減 1
{
Adjust( r , i , n ) ;
for ( i = n - 2 ; i >= 0 ; i-- ) //
{
t = r[i+1] ;
r[i+1] = r[0] ;
r[0] = t ;
Adjust( r , 0 , i );
}
}
}
上面的
for ( i = ( n >> 1 ) ; i >= 0 ; i-- )中的
" >> "這個符號是代表?
以及
Adjust( r , i , n ) ;這段是代表?
有請高手幫幫小弟解答一下
OTZ
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.126.161.78
推
04/03 18:17, , 1F
04/03 18:17, 1F
→
04/03 18:17, , 2F
04/03 18:17, 2F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章