[問題] C++ heap sort 的問題

看板C_and_CPP (C/C++)作者 (呆)時間16年前 (2009/04/03 17:04), 編輯推噓1(101)
留言2則, 1人參與, 最新討論串1/1
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
1.shift left 2.heapify
04/03 18:17, 1F

04/03 18:17, , 2F
shift right xd
04/03 18:17, 2F
文章代碼(AID): #19rT4fRM (C_and_CPP)
文章代碼(AID): #19rT4fRM (C_and_CPP)