import java.util.Arrays; import java.util.Scanner; public class Project5 { public static void main(String []args){ Scanner scanner = new Scanner(System.in); System.out.print("请输入数组长度: "); int size = scanner.nextInt(); int []arr = new int[size]; for (int i = 0; i < size; i++) { System.out.print("请输入数据 "); arr[i] = scanner.nextInt(); } System.out.println("排序前:"+Arrays.toString(arr)); sort(arr); System.out.println("排序前:"+Arrays.toString(arr)); } public static void sort(int []arr){ for(int i=arr.length/2-1;i>=0;i--) { adjustHeap(arr, i, arr.length); } for(int j=arr.length-1;j>0;j--){ swap(arr,0,j); adjustHeap(arr,0,j); } } public static void adjustHeap(int []arr,int i,int length){ int temp = arr[i]; for(int k=i*2+1;k<length;k=k*2+1){ if(k+1<length && arr[k]<arr[k+1]){ k++; } if(arr[k] >temp){ arr[i] = arr[k]; i = k; }else{ break; } } arr[i] = temp; } public static void swap(int []arr,int a ,int b){ int temp=arr[a]; arr[a] = arr[b]; arr[b] = temp; } }
时间: 2023-06-10 14:09:03 浏览: 98
java代码-import java.util.Scanner;
此代码似乎不完整,最后的 if 语句缺少了一个大括号。同时,在第12行的 for 循环中,i 的递增部分应该是 i++ 而不是 i 。
此外,在第15行和第19行中,输出语句中应该有一个加号来连接字符串和数组,即 "排序前:" + Arrays.toString(arr) 。同样的问题也出现在第24行。
最后,在第18行和第23行中,输出语句中应该是 "排序后:" 而不是 "排序前:" 。
阅读全文