part 1 插入排序
1.1 直接插入排序
1.1.1
基本思想:像平常打扑克一样,先找有序区,再找无序区,然后将无序区的第一个数字在有序区中放入合适的位置。
1.1.2 举例说明:
public class Inplacesorting {
public static void main(String[] arg0){
int [] a=sorting_Inplace();
for (int i = 0; i < a.length; i++) {
System.out.print(a[i]+"\t");
}
}
public static int[] sorting_Inplace(){
int[] array={12,5,8,3,9};
int assistance=0;
for(int i=1;i<array.length;i++){
assistance=array[i];
for (int j = i-1; j >=0; j--) {
if(assistance < array[j]){
array[j+1] = array[j] ;
array[j]=assistance;
}
}
}
return array;
}
}
take note:
第一个错误:
public class Inplacesorting {
public static void main(String[] arg0){
int [] a=sorting_Inplace();
for (int i = 0; i < a.length; i++) {
System.out.println(a);
}
}
public static int[] sorting_Inplace(){
int[] array={12,5,8,3,9};
int assistance=0;
for(int i=1;i<=array.length;i++){
assistance=array[i];
for (int j = i-1; j < i; j--) {
if(assistance < array[j]){
array[j+1] = array[j] ;
array[j]=assistance;
}
}
}
return null;
}
}
第一个错误
错误信息: Exception in thread “main” java.lang.ArrayIndexOutOfBoundsException: -1
at com.zhenx.test.Inplacesorting.sorting_Inplace(Inplacesorting.java:16)
at com.zhenx.test.Inplacesorting.main(Inplacesorting.java:5)
第二个错误:
错误信息:
Exception in thread “main” java.lang.ArrayIndexOutOfBoundsException: 5
at com.zhenx.test.Inplacesorting.sorting_Inplace(Inplacesorting.java:14)
at com.zhenx.test.Inplacesorting.main(Inplacesorting.java:5)
第三个错误:
错误信息:
Exception in thread “main” java.lang.NullPointerException
at com.zhenx.test.Inplacesorting.main(Inplacesorting.java:6)
第四个错误:
[I@7852e922[I@7852e922[I@7852e922[I@7852e922[I@7852e922
最终正确代码:
public class Inplacesorting {
public static void main(String[] arg0){
int [] a=sorting_Inplace();
for (int i = 0; i < a.length; i++) {
System.out.print(a[i]+"\t");
}
}
public static int[] sorting_Inplace(){
int[] array={12,5,8,3,9};
int assistance=0;
for(int i=1;i<=array.length-1;i++){
assistance=array[i];
for (int j = i-1; j >=0; j--) {
if(assistance < array[j]){
array[j+1] = array[j] ;
array[j]=assistance;
}
}
}
return array;
}
}