Java排序算法 - 堆排序的代码
Posted gladiolus
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java排序算法 - 堆排序的代码相关的知识,希望对你有一定的参考价值。
把内容过程中比较重要的一些内容片段做个备份,如下的资料是关于Java排序算法 - 堆排序的内容。
import java.util.Arrays;
public class HeapSort
int a[]=49,38,65,97,76,13,27,49,78,34,12,64,5,4,62,99,98,54,56,17,18,23,34,15,35,25,53,51;
public HeapSort()
heapSort(a);
public void heapSort(int[] a)
System.out.println("开始排序");
int arrayLength=a.length;
for(int i=0;i<arrayLength-1;i++)
buildMaxHeap(a,arrayLength-1-i);
swap(a,0,arrayLength-1-i);
System.out.println(Arrays.toString(a));
private void swap(int[] data, int i, int j)
int tmp=data[i];
data[i]=data[j];
data[j]=tmp;
private void buildMaxHeap(int[] data, int lastIndex)
for(int i=(lastIndex-1)/2;i>=0;i--)
int k=i;
if(biggerIndex<lastIndex)
if(data[biggerIndex]<data[biggerIndex+1])
biggerIndex++;
if(data[k]<data[biggerIndex])
swap(data,k,biggerIndex);
k=biggerIndex;
else
break;
以上是关于Java排序算法 - 堆排序的代码的主要内容,如果未能解决你的问题,请参考以下文章