admin管理员组文章数量:1516870
排序
package org.lion.euler.study.sort;/*** 堆排序* * 原理:建立大顶堆,交换第一个与最后一个值,重新维护大顶堆。* @author lion**/
public class HeapSort extends AbstractSort {@Overridepublic void sort(Integer[] array) {int len = array.length/2;while(len >= 0){this.heapMax(array, len, array.length);len -= 1;}int curLen = array.length - 1;while(curLen >= 0){this.swap(array, 0, curLen);this.heapMax(array, 0, curLen);curLen -= 1;}}private void heapMax(Integer[] array, int index, int maxLen){int len = maxLen;int curIndex = index;while(curIndex < len){int left = curIndex * 2;int right = left + 1;int maxIndex = curIndex;if(left < len && array[left] > array[maxIndex]){maxIndex = left;}if(right < len && array[right] > array[maxIndex]){maxIndex = right;}if(maxIndex > curIndex){this.swap(array, curIndex, maxIndex);curIndex = maxIndex;}else{break;}}}}
本文标签: 排序
版权声明:本文标题:排序 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.betaflare.com/web/1686561761a10547.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。


发表评论