java 实现堆排序
来源:互联网 发布:medline数据库网址 编辑:程序博客网 时间:2024/05/20 23:35
package com;
/**
* 实现堆排序
* @author 小小王
*
*/
public class TestHeapSort {
public static void adjustMinHeap(int[] a,int pos,int len){
int temp;
int child;
for(temp= a[pos];2 * pos+1<=len; pos =child){
child = 2 * pos+1;
if(child<len&&a[child]>a[child+1]){
child++;
}
if(a[child]<temp){
a[pos]=a[child];
}else{
break;
}
}
a[pos] = temp;
}
public static void myMinHeapSort(int[] a){
int i;
int len = a.length;
for(i=len/2-1;i>=0;i--){
adjustMinHeap(a, i, len-1);
}
for(i = len-1;i>=0;i--){
int temp = a[0];
a[0] = a[i];
a[i] = temp;
adjustMinHeap(a, 0, i-1);
}
}
public static void main(String[] args) {
int a[] = {4,6,2,4,8,5,2,9};
myMinHeapSort(a);
for (int i = 0; i < a.length; i++) {
System.out.println(a[i]);
}
}
}
/**
* 实现堆排序
* @author 小小王
*
*/
public class TestHeapSort {
public static void adjustMinHeap(int[] a,int pos,int len){
int temp;
int child;
for(temp= a[pos];2 * pos+1<=len; pos =child){
child = 2 * pos+1;
if(child<len&&a[child]>a[child+1]){
child++;
}
if(a[child]<temp){
a[pos]=a[child];
}else{
break;
}
}
a[pos] = temp;
}
public static void myMinHeapSort(int[] a){
int i;
int len = a.length;
for(i=len/2-1;i>=0;i--){
adjustMinHeap(a, i, len-1);
}
for(i = len-1;i>=0;i--){
int temp = a[0];
a[0] = a[i];
a[i] = temp;
adjustMinHeap(a, 0, i-1);
}
}
public static void main(String[] args) {
int a[] = {4,6,2,4,8,5,2,9};
myMinHeapSort(a);
for (int i = 0; i < a.length; i++) {
System.out.println(a[i]);
}
}
}
阅读全文
0 0
- 堆排序Java实现
- 堆排序-java实现
- 堆排序 Java实现
- java实现堆排序
- java实现堆排序
- Java实现堆排序
- java实现堆排序
- JAVA实现堆排序
- java实现堆排序
- java 实现堆排序
- Java实现堆排序
- Java实现堆排序
- Java实现堆排序
- java实现堆排序
- JAVA 堆排序实现
- 堆排序java实现
- java堆排序实现
- java实现堆排序
- 【candy】
- java编程思想-注解
- __call和__callStatic
- 分布式系统原理介绍读书笔记
- JPEG解码原理详解
- java 实现堆排序
- delphi调用阿里云的对象存储服务OSS
- MyBatis学习笔记:基于xml和注解对表的基本操作
- Python 2与Python 3的区别
- 常见三维重建算法及其实现(含源码下载链接)
- js内置对象 学习笔记
- tensorflow笔记:常用函数
- HDU 6048 Puzzle(逆序数+等差数列)
- QT笔记