亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

歸并排序問題,lenth為什么undefined

歸并排序問題,lenth為什么undefined

慕尼黑8549860 2019-05-25 16:17:01
這是我照著書上敲的歸并排序,可是控制臺輸出merg函數while判斷中的length為undefinedfunctionsplitMergeSort(arr){varlen=arr.length;while(len==1){returnarr;}varmid=Math.floor(len/2);varleft=arr.slice(0,mid),right=arr.slice(mid,len);returnsplitMergeSort(merge(left),merge(right))}//合并函數functionmerge(arr1,arr2){varresult=[];varl=0;varr=0;while(l
查看完整描述

2 回答

?
萬千封印

TA貢獻1891條經驗 獲得超3個贊

javascript是區分大小的你這里面的語法關鍵字都寫錯了是length不是Length是while不是whiLe是floor不是fLoor是slice不是sLice
你確定你是照著書上敲的?這不是誤人子弟嗎
                            
查看完整回答
反對 回復 2019-05-25
?
慕田峪4524236

TA貢獻1875條經驗 獲得超5個贊

你merge(left)merge(right)傳遞的都是一個參數,你merge函數卻又arr1,arr2兩個參數,所以arr2.length當然是undefined而且函數也沒有return并不知道是在哪本書上敲的
functionsplitMergeSort(arr){
varlen=arr.length;
while(len==1){
returnarr;
}
varmid=Math.floor(len/2);
varleft=arr.slice(0,mid),
right=arr.slice(mid,len);
returnmerge(splitMergeSort(left),splitMergeSort(right))
}
//合并函數
functionmerge(arr1,arr2){
varresult=[];
varl=0;
varr=0;
while(lif(arr1[l]result.push(arr1[l++])
}else{
result.push(arr2[r++])
}
}
while(lresult.push(arr1[l++])
}
while(rresult.push(arr2[r++])
}
returnresult
}
稍微改了一下
                            
查看完整回答
反對 回復 2019-05-25
  • 2 回答
  • 0 關注
  • 462 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號