八大排序算法

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;
	 
 }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值