高手请进!关于一个二分插入排序的问题。。 bigFiles没有定义,来个完整的代码能放在标签吗,这代码看得蛋疼 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 public void binarySort(FileInfo fileInfo, int beginIndex, int endIndex) {int midIndex = (beginIndex + endIndex) / 2;float nowLength = fileInfo.getSize();float midLength = bigFiles.get(midIndex).getSize();float beginLength = bigFiles.get(beginIndex).getSize();float endLength = bigFiles.get(endIndex).getSize();if (nowLength > beginLength) {bigFiles.add(0, fileInfo);} else if (nowLength < endLength) {bigFiles.add(fileInfo);} else if (nowLength > midLength) {binarySort(fileInfo, beginIndex, midIndex - 1);} else if (nowLength < midLength) {binarySort(fileInfo, midIndex + 1, endIndex);} else {bigFiles.add(midIndex, fileInfo);}} 不知道你要怎么排序,但是你的排序明显有问题,我写了个按照fileInfo的size升序插入的代码 public void binarySort(FileInfo fileInfo, int beginIndex, int endIndex) { int midIndex = (beginIndex + endIndex) / 2; float nowLength = fileInfo.getSize(); float midLength = bigFiles.get(midIndex).getSize(); float beginLength = bigFiles.get(beginIndex).getSize(); float endLength = bigFiles.get(endIndex).getSize(); if (nowLength < beginLength) { bigFiles.add((beginIndex-1)>0?(beginIndex-1):0, fileInfo); } else if (nowLength >= endLength) { bigFiles.add(fileInfo); } else if (nowLength >= midLength) { binarySort(fileInfo, midIndex+1, endIndex); } else{ binarySort(fileInfo, beginIndex, midIndex-1); } } public void binarySort(FileInfo fileInfo, int beginIndex, int endIndex) { int midIndex = (beginIndex + endIndex) / 2; float nowLength = fileInfo.getSize(); float midLength = bigFiles.get(midIndex).getSize(); float beginLength = bigFiles.get(beginIndex).getSize(); float endLength = bigFiles.get(endIndex).getSize(); if (nowLength > beginLength) { bigFiles.add(beginIndex, fileInfo); return; } else if (nowLength < endLength) { bigFiles.add(endIndex + 1,fileInfo); return; } else if (nowLength > midLength) { binarySort(fileInfo, beginIndex, midIndex - 1); } else if (nowLength < midLength) { binarySort(fileInfo, midIndex + 1, endIndex); } else { bigFiles.add(midIndex, fileInfo); return; } }我确实错了,太傻太天真了,竟然犯了致命错了 正则表达式问题 AWT/SWING如何做出画面切换的效果 做网站的具体流程是什么? 如何定义一个ArrayList数组。 程序员这行业文凭是不是很重要? 帮助下小弟·· 小问题,兄弟们帮忙看一下 请大家看一看,问什么结果都一样? 请大家给我一个字符串加密/解密的代码,必给分!!! : 求解java2的家族关系? jar包如何运行呢 命令行提示 无清单属性 这段代码是什么意思啊
int midIndex = (beginIndex + endIndex) / 2;
float nowLength = fileInfo.getSize();
float midLength = bigFiles.get(midIndex).getSize();
float beginLength = bigFiles.get(beginIndex).getSize();
float endLength = bigFiles.get(endIndex).getSize();
if (nowLength > beginLength) {
bigFiles.add(0, fileInfo);
} else if (nowLength < endLength) {
bigFiles.add(fileInfo);
} else if (nowLength > midLength) {
binarySort(fileInfo, beginIndex, midIndex - 1);
} else if (nowLength < midLength) {
binarySort(fileInfo, midIndex + 1, endIndex);
} else {
bigFiles.add(midIndex, fileInfo);
}
}
public void binarySort(FileInfo fileInfo, int beginIndex, int endIndex) {
int midIndex = (beginIndex + endIndex) / 2;
float nowLength = fileInfo.getSize();
float midLength = bigFiles.get(midIndex).getSize();
float beginLength = bigFiles.get(beginIndex).getSize();
float endLength = bigFiles.get(endIndex).getSize();
if (nowLength < beginLength) {
bigFiles.add((beginIndex-1)>0?(beginIndex-1):0, fileInfo);
} else if (nowLength >= endLength) {
bigFiles.add(fileInfo);
} else if (nowLength >= midLength) {
binarySort(fileInfo, midIndex+1, endIndex);
} else{
binarySort(fileInfo, beginIndex, midIndex-1);
}
}
int midIndex = (beginIndex + endIndex) / 2;
float nowLength = fileInfo.getSize();
float midLength = bigFiles.get(midIndex).getSize();
float beginLength = bigFiles.get(beginIndex).getSize();
float endLength = bigFiles.get(endIndex).getSize();
if (nowLength > beginLength) {
bigFiles.add(beginIndex, fileInfo);
return;
} else if (nowLength < endLength) {
bigFiles.add(endIndex + 1,fileInfo);
return;
} else if (nowLength > midLength) {
binarySort(fileInfo, beginIndex, midIndex - 1);
} else if (nowLength < midLength) {
binarySort(fileInfo, midIndex + 1, endIndex);
} else {
bigFiles.add(midIndex, fileInfo);
return;
}
}
我确实错了,太傻太天真了,竟然犯了致命错了