public class InsertSort{
public void insert(){
int a[]={33,2,11,43,0,431,123,3,2,4,3};
int l,b,c,key;
l=a.length;
for(int i=1;i<l;i++){
c=i;
key=a[i];
for( b=c-1;b>=0;b--){
if(a[b]>key){
a[c]=a[b];
c--;
}
else break; //为什么把这一步注销了不行,起什么作用?
}
a[b+1]=key;//如果上面那一步注销了,把b+1改为c也可以正确执行,这又是为什么
}
for(int d=0;d<l;d++){
System.out.println(a[d]);
}
}
public static void main(String args[]){
InsertSort abc=new InsertSort();
abc.insert();
}
}
解决方案 »
- 求助,java用httpclient包,模拟发送json和接受json。
- 跪求一个多维数组问题
- 怎么用js数组给单选按钮后面显示的名称赋值?
- 关于TableModel的问题
- 大家帮忙看一下,那里有问题
- mysql sql的查询
- 如何根据BEAN类的属性名返回具体的属性值,好像有这样的类包,不过一时忘记了,请大家给予提示?着急
- 如何处理"cannot resolve symbol"错误!多谢帮助!~~(源程序在帖里)
- 为什么IBM的domOne例程不能运行?编译时出现Note: 5 files use or override a deprecated API. Recompile with "-deprecation" for details.错误!
- java 线程画图问题
- 问个synchronized的问题
- 一个JNI的问题请教
数组越界 for(int i=1;i<l;i++)
else break;是判断如果不符合上面条件就跳出
后面[b+1]实际等于 [c-1+1],最后等于[c]