• 《数据结构与算法JavaScript描述》中的一处错误


    最近在看《数据结构与算法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);
    	}
    }
  • 相关阅读:
    blocksit
    getdata
    ASP.net 探针
    301重定向
    webapi
    Unity NGUI UIPanel下对粒子的剪裁
    unity3d 之本地推送
    c#之时间戳与DateTime的相互转换
    c#之从服务器下载压缩包,并解压
    Unity3d 开发之 ulua 坑的总结
  • 原文地址:https://www.cnblogs.com/xljzlw/p/4314539.html
Copyright © 2020-2023  润新知