插入排序的算法,话不多说,直接上代码。
public class insertion_sort {
public void GetArrayInsertion(int[] a, int num) {
int i, v, j;
for (i = 1; i < num; i++) {
v = a[i];
j = i - 1;
while (j >= 0 && a[j] > v) {
a[j + 1] = a[j];
j--;
}
a[j + 1] = v;
printfArray(a);
}
}
public void printfArray(int[] a) {
for (int i = 0; i < a.length; i++) {
System.out.print(a[i] + " ");
}
System.out.println();
}
public int[] input() {
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
int[] a = new int[n];
for (int i = 0; i < a.length; i++) {
a[i] = scan.nextInt();
}
return a;
}
}
public class Textinsertionsort {
public static void main(String[] args) {
insertion_sort p = new insertion_sort();
int[] a = p.input();
p.printfArray(a);
p.GetArrayInsertion(a, a.length);
}
}
运行结果如下:
- 新手写的,可能不是最优解,但勉强解决了问题,如果感到对你有所帮助,点个赞吧!!!
祝你幸福!