【发布时间】:2021-03-30 06:04:28
【问题描述】:
我最近开始根据Data Structures and Algorithms with JavaScript from O'Reilly这本书学习算法。
我停在第 12 章 - 排序算法。
我无法理解插入排序的工作原理。
这是我正在使用的代码:pasteBin - Insertion Sort
下面是让我困惑的部分:
function insertionSort() {
var temp, inner;
for (var outer = 1; outer <= this.dataStore.length - 1; ++outer) {
temp = this.dataStore[outer];
inner = outer;
while (inner > 0 && (this.dataStore[inner-1] >= temp)) {
this.dataStore[inner] = this.dataStore[inner-1];
--inner;
}
this.dataStore[inner] = temp;
}
console.log(this.toString());
}
任何人都可以帮助和评论这段代码吗?
【问题讨论】:
-
您对哪一部分感到困惑?
-
尝试使用其他插座来理解。也许一个更直观的例子会有所帮助。我发现这些视频有助于理解数据结构和算法等内容,因为它们往往非常直观。 youtu.be/DFG-XuyPYUQ
-
另外一个有用的网站具有出色的交互式可视化cs.usfca.edu/~galles/visualization/Algorithms.html
-
@TylerDavis 嗨。我阅读了插入排序算法的操作原理。我的问题是我看不懂代码。什么部分负责什么。但是例如,当我学习关于二叉树的章节时,我没有类似的理解问题。
-
@Mikhail,我在答案中添加了一个 jsfiddle sn-p。打开浏览器的控制台并运行代码,可能对你有帮助。
标签: javascript algorithm