日韩性视频-久久久蜜桃-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算法的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 欧美18aaaⅹxx | 欧美日韩a | 性久久久久久久 | 91久久中文字幕 | 亚洲国产精品视频一区 | 深夜福利国产 | 色播放 | 黑人操少妇 | 亚洲黑丝在线 | 91啦丨九色丨刺激 | www黄色网 | 国产精品午夜未成人免费观看 | 欧美视频一区二区三区在线观看 | 欧美综合自拍 | 中国白嫩丰满人妻videos | 国产探花视频在线观看 | 一级不卡 | 牛av在线| 能免费看黄色的网站 | 插少妇视频| 黑人精品欧美一区二区蜜桃 | 亚洲激情国产 | 久久99精品久久久久婷婷 | 伊人伊人鲁 | 91成人黄色 | 国产福利网| 国产永久免费观看 | 欧美三级黄色 | 精品无码人妻一区二区三 | 3d成人动漫在线观看 | 亚洲视频免费观看 | 久久久无码精品亚洲国产 | 日韩美女黄色片 | 国产美女久久久 | 国产女厕一区二区三区在线视 | 狠狠干天天 | 久久66热这里只有精品 | 快灬快灬一下爽69 | 性色av一区二区三区在线观看 | 亚洲综合一区二区 | 日本三级大片 | av图片在线观看 | 免费在线精品视频 | 久久精品视频一区二区 | 蜜桃精品视频在线观看 | 佐佐木明希电影 | 日韩激情毛片 | 欧美精品99久久久 | 亚洲涩涩视频 | 老色批影院 | 制服丝袜天堂 | 国产伦精品一区二区三区视频免费 | 性大毛片视频 | 日日干夜夜爽 | 亚洲人一区| 欧美区一区二区 | 朝鲜一级黄色片 | 欧美美女在线 | 97超级碰碰碰| 黄色小视屏 | av资源在线 | 超碰三级 | 色悠悠国产精品 | 免费一级做a爰片久久毛片潮 | 牛牛在线视频 | 美女视频黄是免费 | 欧美在线天堂 | 久久成人精品一区二区 | 中文字幕资源在线 | 蜜臀人妻四季av一区二区不卡 | 丁香花免费高清完整在线播放 | 欧洲亚洲自拍 | 黄色观看网站 | 亚洲综合免费观看高清完整版在线 | 国内精品在线观看视频 | 国精产品一区一区三区mba下载 | 国产中文一区二区三区 | www.久久久久久久 | 午夜免费小视频 | 91污网站| 91久久精品日日躁夜夜躁欧美 | 黄色网在线免费观看 | 午夜精品一区二区三区在线视频 | 久久精品国产亚洲av麻豆 | 久久国产中文 | 在线免费国产视频 | 青娱乐97 | 美女扒开尿口来摸 | wwwav在线播放| 天堂中文字幕在线观看 | 久久综合加勒比 | 91精品国产乱码久久久 | 欧美9999 | 欧美六区| 天天天干干干 | 一级片一区二区三区 | 婷婷激情五月 | 桃谷绘里香在线观看 | 一久久 |