简体   繁体   English

JavaScript算法插入排序略有偏离

[英]JavaScript Algorithm Insertion Sort slightly off

Here is the link to my JavaScript Insertion Sort Algorithm 这是我的JavaScript插入排序算法的链接

Quite simply, I just can't figure out why I can't get that pesky arr[0] to get sorted correctly. 很简单,我只是想不出为什么我无法得到那个讨厌的arr [0]来正确排序。 I've tried everything I know of. 我已经尽力了。 sigh

It's pretty close though. 虽然很接近。

Any idea's 有任何想法吗

 var aoo = [5,2,4,6,1,3]; function jInsertionSort(a) { for(var j=2; j<a.length; j++){ //console.log(j); var key = a[j]; var i = j - 1; while (i > 0 && a[i] > key) { a[i+1] = a[i]; i = i-1; } a[i+1]=key; } return a; } var aooSorted = jInsertionSort(aoo); console.log("jInsertionSort = ["+aooSorted+"]"); 

?

JavaScript Insertion Sort Algorithm JavaScript插入排序算法

You almost got it, this works: 您几乎明白了,这可行:

 var aoo = [5,2,4,6,1,3]; function jInsertionSort(a) { for(var j=1; j<a.length; j++){ var key = a[j]; var i = j; while (i > 0 && a[i-1] > key) { a[i] = a[i - 1]; a[i - 1] = key; i = i-1; } } return a; } var aooSorted = jInsertionSort(aoo); console.log("jInsertionSort = ["+aooSorted+"]"); 

 var aoo = [5,2,4,6,1,3]; function jInsertionSort (a) { for (var i = 0; i < a.length; i++) { var k = a[i]; for (var j = i; j > 0 && k < a[j - 1]; j--) a[j] = a[j - 1]; a[j] = k; } return a; } var aooSorted = jInsertionSort(aoo); console.log("jInsertionSort = ["+aooSorted+"]"); 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM