堆排序算法的JAVA实现
来源:互联网 发布:淘宝没有代付选项 编辑:程序博客网 时间:2024/04/30 07:14
package org.myorg.algorithm;public class HeapSorter { public static void heapSort(int[] array){ buildHeap(array);//构建堆 int n = array.length; int i=0; for(i=n-1;i>=1;i--){ swap(array,0,i); heapify(array,0,i); } } public static void buildHeap(int[] array){ int n = array.length;//数组中元素的个数 for(int i=n/2-1;i>=0;i--) heapify(array,i,n); } public static void heapify(int[] A,int idx,int max){ int left = 2*idx+1;// 左孩子的下标(如果存在的话) int right =2*idx+2;// 右孩子的下标(如果存在的话) int largest = 0;//寻找3个节点中最大值节点的下标 if(left<max && A[left]>A[idx]) largest = left; else largest = idx; if(right<max && A[right]>A[largest]) largest = right; if(largest!=idx){ swap(A,largest,idx); heapify(A,largest,max); } } public static void swap(int[] array,int i,int j){ int temp =0; temp=array[i]; array[i]=array[j]; array[j]=temp; } public static void main(String[] args) { int[] a = {1,2,3,4,5,6,7,16,9,10,11,12,13,14,15,8}; System.out.println("排序前.........................."); for(int i=0;i<a.length;i++) System.out.println(a[i]); heapSort(a); System.out.println("排序后.........................."); for(int i=0;i<a.length;i++) System.out.println(a[i]); }}
2 0
- 堆排序算法的java实现
- 《算法导论的Java实现》 堆排序
- 堆排序算法的JAVA实现
- Java实现的堆排序算法
- 堆排序算法的Java实现
- 堆排序算法-java实现
- Java实现堆排序算法
- Java实现堆排序算法
- 堆排序算法java实现
- 堆排序算法--Java实现
- 堆排序算法java实现
- Java实现常见的排序算法--堆排序
- Java实现排序算法之堆排序
- java实现排序算法之堆排序
- Java实现排序算法2:堆排序
- java实现简单排序算法:堆排序
- 排序算法之堆排序java实现
- 排序算法之堆排序 Java 实现
- mysql操作类
- 【Leetcode】Longest Consecutive Sequence
- Github上的PHP资源汇总大全
- android 找不到资源文件
- 枚举类基本知识
- 堆排序算法的JAVA实现
- svn 命令使用
- android模仿微信的链接
- 管理媒体播放(1)控制应用程序的音量和播放
- 理解BP算法-(公式受虐狂,请近,不过这个推导有些错误,有空,我再改过来)
- uuid
- Android TV笔记1
- Keystore概念,Keytool工具使用
- classic example1