二叉堆元素的上浮和下沉

参考: 程序员小灰

package chapter3.part3;

import java.util.Arrays;

import javax.swing.text.AsyncBoxView.ChildState;

import org.junit.Test;

public class HeapAdjust {
	
	
	
	@Test
	public void printUpAdjust() {
		int[] array = new int[] {1,3,2,6,5,7,8,9,10,11};
		System.out.println("上浮前数据:");
		System.out.println(Arrays.toString(array));
		upAdjust(array);
		System.out.println("上浮结果:");
		System.out.println(Arrays.toString(array));
	}
	
	@Test
	public void printDown(){
		int[] array = new int[] {7,100,3,10,5,2,8,9,6};
		System.out.println("下沉前数据: ");
		System.out.println(Arrays.toString(array));
		for(int i=(array.length-2)/2; i>=0; i--) {
			downAdjust(array, i, array.length);
		}
		System.out.println("下沉结果:");
		System.out.println(Arrays.toString(array));
	}

	//下沉元素
	private void downAdjust(int[] array, int parent, int length) {
		int childIndex = parent*2 + 1;
		int temp = array[parent];
		while(childIndex0 && temp

测试用例第1组:

二叉堆元素的上浮和下沉_第1张图片

二叉堆元素的上浮和下沉_第2张图片

 

 

测试用例第2组:

二叉堆元素的上浮和下沉_第3张图片

二叉堆元素的上浮和下沉_第4张图片

 

 

测试结束~


有点小生病了,休息。。。

你可能感兴趣的:(算法,漫画算法,Java,数据结构)