欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

寻找无序数组的第k大元素

程序员文章站 2024-03-15 22:22:06
...

堆排序最核心的算法是:adjustdown(int [] a, int index,int len)
len/2开始到1号分别执行上述函数,就是建堆
其实现大概是:

//小顶堆下调算法。
int tmp = a[index];
for(int k = index * 2;k <= len;k *= 2){
	if(k + 1 <= len && a[k + 1] < a[k])
		k++;
	if(tmp > a[k])
		break;
	a[index] = a[k];
	index = k;
}

还有个方法是快速排序。

相关标签: Leetcode