您好,登錄后才能下訂單哦!
JavaScript中實(shí)現(xiàn)插入排序算法的原理是什么?針對(duì)這個(gè)問(wèn)題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問(wèn)題的小伙伴找到更簡(jiǎn)單易行的方法。
JavaScript實(shí)現(xiàn)插入排序
function insertion_sort(arr) { var temp; for (var i = 1; i < arr.length; i++) { for (var j = i-1; j >=0; j--) { if (arr[j+1]<arr[j]) { temp=arr[j+1]; arr[j+1]=arr[j]; arr[j]=temp; }else if (arr[j+1]>=arr[j]) { break; } } } return arr; } var a=[11,2,3,445,7,32,71,8,94]; console.log(insertion_sort(a)); var b=[94,11]; console.log(insertion_sort(b));
說(shuō)明:
1、一旦發(fā)現(xiàn)arr[j+1]的值不比前面的值小,就可以結(jié)束內(nèi)層循環(huán)了,break
實(shí)現(xiàn)這一功能;
2、內(nèi)層循環(huán)用arr[j+1]的原因:初始時(shí)a[j](即a[i-1])代表a[i]前一個(gè)位置,進(jìn)入循環(huán)后,a[j+1]就表示了a[i]的位置,實(shí)現(xiàn)了a[i]和a[i-1]的第一次比較;隨著j第一次自減,實(shí)際上比較了a[i-1]和a[i-2];依次類(lèi)推。如果將arr[j+1]改成a[i]是不行的,因?yàn)闆](méi)有實(shí)現(xiàn)位置的移動(dòng)。
關(guān)于JavaScript中實(shí)現(xiàn)插入排序算法的原理是什么問(wèn)題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒(méi)有解開(kāi),可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識(shí)。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。