高手请进!关于一个二分插入排序的问题。。 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; } }我确实错了,太傻太天真了,竟然犯了致命错了 swing gridLayout 计算器中出现的异常!? 如何获得当前日期前5天的日期字符串数组或用逗号隔开的字符串,需要考虑周6日的问题 ibatis的配置 大家给个意见,好意见就加分! 初学JAVA,请大家介绍几本好书! realplay(代码录入员)请进,thanks 救命的问题求教,给提示就给分 java 普遍安装问题 A fatal error has been detected by the Java Runtime Environment 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;
}
}
我确实错了,太傻太天真了,竟然犯了致命错了