堆排序獲取TopN

2022-07-05 13:36:13 字數 1152 閱讀 5481

package

com.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 用於構建堆,從最後乙個非葉子結點索引開...