《数据结构与算法JavaScript描述》中的一处错误
2015-03-04 22:44 那时候的我 阅读(267) 评论(0) 编辑 收藏 举报最近在看《数据结构与算法JavaScript描述》这本书,看到选择排序这部分时,发现一个比较大的错误。
原书的选择排序算法是这样的:
function selectionSort() {
var min, temp;
for (var outer = 0; outer <= this.dataStore.length - 2; ++outer) {
min = outer;
for (var inner = outer + 1; inner <= this.dataStore.length - 1; ++inner) {
if (this.dataStore[inner] < this.dataStore[min]) {
min = inner;
}
swap(this.dataStore, outer, min);
}
}
}
错误在于,它把swap函数放在了内循环里面了,其实swap函数应该放在内循环外面,原理就不多说了,书上都有:
function selectionSort() {
var min, temp;
for (var outer = 0; outer <= this.dataStore.length - 2; ++outer) {
min = outer;
for (var inner = outer + 1; inner <= this.dataStore.length - 1; ++inner) {
if (this.dataStore[inner] < this.dataStore[min]) {
min = inner;
}
}
swap(this.dataStore, outer, min);
}
}