日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python堆排序求topn_堆排序和topN算法

發布時間:2025/4/16 python 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python堆排序求topn_堆排序和topN算法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

堆排序和topN算法:

topN算法,第一次調用topN,然后把海量數據一次和小頂堆第一個比較,如果>第一個元素,就交換,然后調用minHeapify方法排序一遍。

然后比較下一個數據。

public class HeapSortAndTopN {

public static void main(String[] args) {

int[] arr = new int[]{3,5,3,0,8,6,1,5,8,6,2,4,9,4,7,0,1,8,9,7,3,1,2,5,9,7,4,0,2,6};

new HeapSortAndTopN().sort(arr);

System.out.println(Arrays.toString(arr));

}

public void sort(int[] a) {

int len = a.length;

int firstNonLeafIndex = (len - 2)/2;

for(int i = firstNonLeafIndex; i >=0 ; i --) {

maxHeapify(a,len,i);

}

for(int j = len - 1; j > 0 ; j --) {

swap(a,j,0);

maxHeapify(a,j,0);

}

}

private void maxHeapify(int[] a, int len, int subTreeNodeMax) {

int left = subTreeNodeMax * 2 + 1;

int right = subTreeNodeMax * 2 + 2;

int maxIndex = subTreeNodeMax;

if(left < len && a[left] > a[maxIndex]) {

maxIndex = left;

}

if(right < len && a[right] > a[maxIndex]) {

maxIndex = right;

}

if(maxIndex != subTreeNodeMax) {

swap(a, maxIndex, subTreeNodeMax);

maxHeapify(a, len, maxIndex);

}

}

private void minHeapify(int[] a, int len, int subTreeNodeMax) {

int left = subTreeNodeMax * 2 + 1;

int right = subTreeNodeMax * 2 + 2;

int maxIndex = subTreeNodeMax;

if(left < len && a[left] < a[maxIndex]) {

maxIndex = left;

}

if(right < len && a[right] < a[maxIndex]) {

maxIndex = right;

}

if(maxIndex != subTreeNodeMax) {

swap(a, maxIndex, subTreeNodeMax);

maxHeapify(a, len, maxIndex);

}

}

private void swap(int[] a, int i, int j) {

int t = a[i];

a[i] = a[j];

a[j] = t;

}

public int[] topN(int[] array) {

if(array != null && array.length > 0) {

int arrayLen = array.length;

int firtNonLeafIndex = (arrayLen - 2) / 2;

for(int i = firtNonLeafIndex; i >= 0 ; i --) {

minHeapify(array, arrayLen, i);

}

}

return array;

}

}

總結

以上是生活随笔為你收集整理的python堆排序求topn_堆排序和topN算法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产乱子伦精品无码专区 | 九九久久精品视频 | 中日韩午夜理伦电影免费 | 先锋影音一区二区三区 | 男男巨肉啪啪动漫3d | www.亚洲黄色 | 色妞色| 制服丝袜在线第一页 | 国产无遮挡又黄又爽免费视频 | 日韩欧美在线免费观看 | 五月精品 | 精品97人妻无码中文永久在线 | 亚洲人妻一区二区三区 | 在线观看不卡一区 | 成年人拍拍视频 | 日韩精品一区不卡 | 久久午夜网 | 亚洲福利网站 | 黄瓜视频在线免费看 | 污污污www精品国产网站 | 日韩精品国产AV | 欧美熟妇精品黑人巨大一二三区 | 国产高清精品在线观看 | 欧美三级视频在线 | 欧美一区二区三区免费看 | 无码少妇一区二区三区 | 三上悠亚人妻中文字幕在线 | 欧美日韩999 | 18久久久 | 精品国产理论 | 91丨九色丨蝌蚪丨老版 | 欧美三级视频 | 亚洲狠狠婷婷综合久久久久图片 | 国产精品入口66mio男同 | 成人欧美一区二区三区在线观看 | 青青草视频网站 | 亚洲品质自拍视频 | 青青在线播放 | 国产91精品ai换脸 | 日本黄色片 | 最新国产在线视频 | 国产精品网站在线 | 免费视频91蜜桃 | 亚州av成人| 香蕉视频在线观看www | 国产在线精品自拍 | 男生插女生视频 | 成年人免费看视频 | ktv做爰视频一区二区 | 鲁一鲁一鲁一鲁一av | 国产美女免费 | 亚洲搞av | 人妻丰满熟妇av无码久久洗澡 | 国产精品久久中文字幕 | 亚洲av不卡一区二区 | 中文字字幕在线 | 被黑人各种姿势猛c哭h文1 | 国产精品久久777777换脸 | 美女黄色一级 | 黄色网免费观看 | 日本中文字幕在线观看视频 | 国产精品视频久久久 | 成人av图片 | 手机看片1024国产 | 奇米第四色影视 | 无码人妻一区二区三区在线视频 | 天堂va在线| 日韩精品视频在线免费观看 | 91精品观看 | 欧美精品h | 少妇精品亚洲一区二区成人 | 日韩欧美精品在线播放 | 天天爱天天舔 | 日韩精品123 | 亚洲专区在线视频 | 天天草av| 日少妇的逼 | 日韩成人在线观看视频 | 久久er99热精品一区二区介绍 | av日韩精品 | 色人阁五月天 | 春草 | 国产三级伦理片 | 国产一级黄色片子 | 欧美亚日韩 | 免费特级黄色片 | 成人第一页 | 日韩精品一区二区三区视频在线观看 | 欧美成人一区在线观看 | 国产中文字幕精品 | 欧美韩一区 | 天天天天色 | 911毛片| 午夜影院在线观看18 | 亚洲色图35p | 色播五月激情五月 | 日本不卡一区二区 | 人妖ts福利视频一二三区 | 国产高h视频 |