排序算法

要求:输入一个数组A ,将A的元素从大到小排序

例如对 :3,5,7,10,9,32  进行排序

第一次排序:5,3,7,10,9,32 

第二次排序:7,5,3,10,9,32 

第三次排序:10,7,5,3,9,32

以此类推.........

思想:我们数组的第1个元素作为已经排序好的元素,从第2个元素到A.lenth-1元素插入到已经排好序的元素之中

public int [] inseretion_Sort(int A[]){
  for (int i = 1; i < A.length; i++) {
  int key = A[i];
  int j=i-1;
  while(j>=0&&A[j]>key){ 
      A[j+1]=A[j];
      j--;
   }
   A[j+1]=key;
   }  
   return A;	
}

while(j>=0&&A[j]>key)顺序不能写反!

&&会先判断j>=0 ,如果这个是false,那么就不会继续判断接下去的条件是否成立。

如果你这样写:while(A[j]>key&&j>=0),那当j<0的时候,就会爆出异常:java.lang.ArrayIndexOutOfBoundsException数组下标超出范围!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值