Java 插入排序pt2-Hackerrank
有人能检查一下我的代码,看看为什么最后一个索引不能按预期工作吗?任何关于如何改进的建议都将不胜感激Java 插入排序pt2-Hackerrank,java,sorting,Java,Sorting,有人能检查一下我的代码,看看为什么最后一个索引不能按预期工作吗?任何关于如何改进的建议都将不胜感激 import java.io.*; import java.util.*; public class Solution { public static void insertionSortPart2(int[] ar) { int key; int seen; for (int i = 0 ; i < ar.length-1; i++){ ke
import java.io.*;
import java.util.*;
public class Solution {
public static void insertionSortPart2(int[] ar) {
int key;
int seen;
for (int i = 0 ; i < ar.length-1; i++){
key = ar[i];
seen = i;
while (seen <ar.length-1 && ar[seen+1]<key){
ar[seen]= ar[seen+1];
seen = seen+1;
}
ar[seen]=key;
printArray(ar);
}
}
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int s = in.nextInt();
int[] ar = new int[s];
for(int i=0;i<s;i++){
ar[i]=in.nextInt();
}
insertionSortPart2(ar);
}
private static void printArray(int[] ar) {
for(int n: ar){
System.out.print(n+" ");
}
System.out.println("");
}
}
import java.io.*;
导入java.util.*;
公共类解决方案{
公共静态void insertionsorpart2(int[]ar){
int键;
int-seen;
对于(int i=0;i 当你以错误的方式做这件事时,请再读一遍第一部分
假设第一个元素已排序,然后尝试在排序列表中逐个插入元素
试试这个:
public static void insertionSortPart2(int[] ar) {
int key;
int seen;
for (int i = 1 ; i < ar.length; i++){
key = ar[i];
seen = i;
while (seen > 0 && ar[seen-1] > key) {
ar[seen] = ar[seen-1];
seen = seen - 1;
}
ar[seen]=key;
printArray(ar);
}
}
publicstaticvoid插入端口2(int[]ar){
int键;
int-seen;
对于(int i=1;i0&&ar[seen-1]>键){
ar[seen]=ar[seen-1];
SEED=SEED-1;
}
ar[seen]=键;
打印阵列(ar);
}
}
您是否已使用调试器完成此操作?