packagecom.zjl.tool.sort;
/*** 求前面的最大k個 解決方案:小根堆 (資料量比較大(特別是大到記憶體不可以容納)時,偏向於採用堆)
* @author
張恩備 * @date 2016-11-25 下午12:15:36 */
public
class
topnbyheap
//如果只有左孩子,沒有右孩子,max值為left
if(left <= end&&right >end)
//如果沒有孩子,則表明到了完全二叉樹的葉子節點
if(left >end)
//如果當前節點值小於兩孩子中的值較大者,那麼將當前節點值與max交換
if(arr[start] >arr[min])
//當前節點向孩子節點迭代
start =min;}}
/*** 建立k個節點的小根堆
* *
@param
a *
@param
k *
@return
*/static
int createheap(int a, int
k)
//由最後乙個非葉子節點,向根節點迭代,建立最大堆,陣列中的最大值將被移動到根節點
for(int start = k-1/2;start >= 0;start--)
return
result;
}static
void insert(int a, int value, int
k) }
static
int gettopkbyheap(int input, int
k) }
//將小根堆降序排列
while(k-1 > 0)
return
heap;
}public
static
void
main(string args) ;
//獲取top3
int result = gettopkbyheap(a, 3);
for (int
temp : result)
}}
python堆排序求topn 堆排序獲取TopN
packagecom.zjl.tool.sort 求前面的最大k個 解決方案 小根堆 資料量比較大 特別是大到記憶體不可以容納 時,偏向於採用堆 author張恩備 date 2016 11 25 下午12 15 36 public classtopnbyheap 如果只有左孩子,沒有右孩子,max...
hive 分組排序,topN
hive 分組排序,topn 語法格式 row number over partition by col1 order by col2 desc rank partition by 類似hive的建表,分割槽的意思 order by 排序,預設是公升序,加desc降序 rank 表示別名 表示根據c...
堆排序 堆排序優化 索引堆排序
堆排序 堆排序優化 索引堆排序 注 堆排序 索引堆排序 都是不穩定的排序。注 索引最大堆排序有誤!有沒有大神可以指點一二?1 堆 所有元素 都從索引0開始 父親結點索引 i 左孩子結點索引 2i 1 右孩子結點索引 2i 2 左後乙個非葉子結點索引 n 1 2 用於構建堆,從最後乙個非葉子結點索引開...