大神帮忙,我找不到错误

av_boyyyyyy 2015-07-19 08:16:02
今天那本js很厚的书看完了,就顺便用js整理下八大算法,可是第三个就走不动了,请问哪里错了,

<script type="text/javascript">

function swap(array,index1,index2){
var temp=array[index1];
array[index1]=array[index2];
array[index2]=temp;
}
function selectSort(myArray){
var len=myArray.length,
i,j,min; //min:最小值索引

for(i=0;i<len;i++){
min=i; //假设当前位置设置为最小值

//检查数组其余部分是否更小
for(j=i+1;j<len;j++){
if(myArray[j]<myArray[min]){
min=j;
}
}

if(i!=min){
swap(myArray,i,min);
}
}
}
var arr=[12,2,5,4,1,19,24,13,7];
alert(selectSort(arr)); //undefined
...全文
80 4 打赏 收藏 举报
写回复
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
sydhr_1994 2015-07-21
  • 打赏
  • 举报
回复
<script type="text/javascript"> function swap(array,index1,index2){ var temp=array[index1]; array[index1]=array[index2]; array[index2]=temp; return array[index1]; } function selectSort(myArray){ var len=myArray.length, i,j,min; //min:最小值索引 for(i=0;i<len;i++){ min=i; //假设当前位置设置为最小值 //检查数组其余部分是否更小 for(j=i+1;j<len;j++){ if(myArray[j]<myArray[min]){ min=j; } } if(i!=min){ swap(myArray,i,min); } } } var arr=[12,2,5,4,1,19,24,13,7];
av_boyyyyyy 2015-07-19
  • 打赏
  • 举报
回复
引用 1 楼 xuzuning 的回复:
因为你没有返回
function swap(array,index1,index2){
    var temp=array[index1];
    array[index1]=array[index2];
    array[index2]=temp;
}
function selectSort(myArray){
    var len=myArray.length,
        i,j,min;    //min:最小值索引
 
    for(i=0;i<len;i++){
        min=i;    //假设当前位置设置为最小值
 
        //检查数组其余部分是否更小
        for(j=i+1;j<len;j++){
            if(myArray[j]<myArray[min]){
                min=j;
            }
        }
 
        if(i!=min){
            swap(myArray,i,min);
        }
    }
    return myArray; //这里应返回
}
var arr=[12,2,5,4,1,19,24,13,7];
alert(selectSort(arr)); 
不返回也可以,但要这样用
var arr=[12,2,5,4,1,19,24,13,7];
selectSort(arr);
alert(arr);
谢谢大神 赞赞赞
slwsss 2015-07-19
  • 打赏
  • 举报
回复
function swap(array,index1,index2){ var temp=array[index1]; array[index1]=array[index2]; array[index2]=temp; } function selectSort(myArray){ var len=myArray.length, i,j,min; //min:最小值索引 for(i=0;i<len;i++){ min=i; //假设当前位置设置为最小值 //检查数组其余部分是否更小 for(j=i+1;j<len;j++){ if(myArray[j]<myArray[min]){ min=j; } } if(i!=min){ swap(myArray,i,min); } } return myArray } var arr=[12,2,5,4,1,19,24,13,7]; alert(selectSort(arr)); //undefined alert([12,2,5,4,1,19,24,13,7].sort(function(a,b){return a-b}))
xuzuning 2015-07-19
  • 打赏
  • 举报
回复
因为你没有返回
function swap(array,index1,index2){
    var temp=array[index1];
    array[index1]=array[index2];
    array[index2]=temp;
}
function selectSort(myArray){
    var len=myArray.length,
        i,j,min;    //min:最小值索引
 
    for(i=0;i<len;i++){
        min=i;    //假设当前位置设置为最小值
 
        //检查数组其余部分是否更小
        for(j=i+1;j<len;j++){
            if(myArray[j]<myArray[min]){
                min=j;
            }
        }
 
        if(i!=min){
            swap(myArray,i,min);
        }
    }
    return myArray; //这里应返回
}
var arr=[12,2,5,4,1,19,24,13,7];
alert(selectSort(arr)); 
不返回也可以,但要这样用
var arr=[12,2,5,4,1,19,24,13,7];
selectSort(arr);
alert(arr);
发帖
JavaScript

8.7w+

社区成员

Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
帖子事件
创建了帖子
2015-07-19 08:16
社区公告
暂无公告