privatestaticvoidswap(int[] arr, int a, int b) { inttemp=arr[a]; arr[a]=arr[b]; arr[b]=temp; } /** * * 调整大顶堆(仅是调整过程,建立在大顶堆已构建的基础上) * @param arr * @param i * @param length */ privatestaticvoidadjustHeap(int[] arr, int i, int length) { int temp=arr[i]; //先取出当前元素i for (intk=2*i+1; k <length ; k=2*k+1){//从i结点的左子结点开始,也就是2i+1处开始 if (k+1<length&&arr[k]<arr[k+1]){//如果左子结点小于右子结点,k指向右子结点 k++;