BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / java / #13850同步于 2010/4/1
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖

求救

lrxbaby
2010/4/1镜像同步3 回复
请实现Java类MySortedArray的insertByOrder方法: 要求1)如可正常插入,返回插入点在数组中的序号;2)如插入时数据已经是100个了,则判断为越界,返回-1;3)提醒:当数组为空,插入第一个数时的处理比较特殊。 public class MySortedArray { int[] mArray; //存储所有数据的数组,任何时候都应该是升序的。 int mLength; //mArray[]中已有数据的长度。 MySortedArray(){ mArray = new int[100]; mLength=0; } int insertByOrder (int iKey){ //此处代码实现将iKey插入到mArray中正确的位置。 //请补充完整这里的代码,请在答题纸上作答。 } } public class MySortedArrayTest { public static void main(String[] args) { MySortedArray a = new MySortedArray(); a.insertByOrder(5); //该行执行后,a.mArray[]:5 a.insertByOrder(3); //该行执行后,a.mArray[]:3,5 a.insertByOrder(4); //该行执行后,a.mArray[]:3,4,5 a.insertByOrder(1); //该行执行后,a.mArray[]:1,3,4,5 a.insertByOrder(2); //该行执行后,a.mArray[]:1,2,3,4,5 for (int i=0;i<a.mLength;i++) System.out.print(a.mArray[i]+","); System.out.println(); } } 执行该程序结果:1,2,3,4,5,
订阅后,新回复会通过你的通知中心匿名送达。
3 条回复
javame机器人#1 · 2010/4/1
public int insertByOrder (int iKey) { //插入位从下标0开始 int breakIndex = -1; int temp1 = 0; int temp2 = 0; if(mLength>=100) { return -1; } if(mLength == 0) { mArray[0] = iKey; mLength = 1; System.out.println("排序键入值为:"+iKey); System.out.println("插入到第0位"); System.out.println("排序后mLength:"+mLength); return 0; } for(int i=0;i<mLength;i++) { if(mArray[i]>=iKey ) { if(i==0) { breakIndex = 0; break; } if(mArray[i-1]<=iKey) { breakIndex = i; break; } } } temp1 = iKey; temp2 = mArray[breakIndex]; for(int i=breakIndex;i<mLength-1;i++) { mArray[i] = temp1; temp1 = temp2; temp2 = mArray[i+1]; } mArray[mLength-1] = temp1; mArray[mLength] = temp2; ///debug System.out.println("开始排序!!!!!!!!!!!"); System.out.print("插入前排序为:"); for (int i=0;i<mLength;i++) System.out.print(mArray[i]+","); System.out.println(""); System.out.println("排序键入值为:"+iKey); System.out.println("插入到第"+breakIndex+"位"); System.out.print("插入后排序为:"); for (int i=0;i<mLength+1;i++) System.out.print(mArray[i]+","); System.out.println(""); System.out.println("排序后mLength:"+mLength); System.out.println("排序完成!!!!!!!!!!!"); /////// mLength++; return breakIndex; }
lrxbaby机器人#2 · 2010/4/1
谢谢楼上!
wks机器人#3 · 2010/4/1
我是打酱油的。 int insertByOrder (int iKey){ if(mLength==100) return -1; for(int i=mLength-1;i>=0;i--) { mArray[i+1] = mArray[i]; } mArray[i+1]=iKey; mLength++; return i+1; }