堆排序
来源:互联网 发布:pkpm钢结构设计软件 编辑:程序博客网 时间:2024/06/16 06:13
将优先队列变成一种排序方法
用下沉操作由N个元素构造堆只需要少于2N次比较以及少于N次交换
将N个元素排序,只需要少于(2NlgN+2N)次比较(以及一半次数的交换)
private static void sink(Comparable[] a,int k,int n) {while(2*k<n){int j=2*k;if (j<n&&a[j+1].compareTo(a[j])<0) j++;if (a[j].compareTo(a[k])<=0) break;exch(a,k,j);k=j;}}public static void exch(Comparable[] a,int i,int j) {Comparable t=a[i];a[i]=a[j];a[j]=t;}public static void sort(Comparable[] a) {int N=a.length;//构造堆for (int k = N/2; k >=1; k--) {sink(a,k,N);}//while循环将最大的元素a[1]和a[N]交换并且修复了堆while (N>1) {exch(a, 1, N--);sink(a, 1, N);}}
0 0
- 堆及堆排序
- 堆/堆排序特点
- 【二叉堆、堆排序】
- 二叉堆 & 堆排序
- 二叉堆 & 堆排序
- 堆与堆排序
- 堆与堆排序
- 堆与堆排序
- 堆与堆排序
- 堆与堆排序
- 堆与堆排序
- 堆和堆排序
- 堆排序(最大堆)
- 堆和堆排序
- 堆和堆排序
- 堆及堆排序
- 堆和堆排序
- 堆与堆排序
- Facebook的弹性动画浅析
- 图片验证码加时间戳刷新注意
- epoch,[batch size], iterations
- opencv调用摄像头并减去背景,背景差分法
- Android基本组件介绍和生命周期
- 堆排序
- 基于HOG特征的Adaboost行人检测
- 关于校园网的理解,及几种上网的方式
- MyBatis传入参数与parameterType
- Android集成Google支付,以及遇到的坑、坑
- 关于NTP的几个问题
- jQuery选择器
- Status Code:415 Unsupported Media Type
- SQL优化:从设计表结构开始(层次型表结构设计方法)