xiaoyu

  • 实现思路

使用js移动元素位置,利用css的transition属性实现过渡动画。在线体验

创建一个数组arr,数组的每一项保存着节点元素的文本值(innerText)和元素在节点列表中的索引nodeIndex, 因为接下来的并不是真的交换两个节点,而是交换两个节点的位置(可能有点不好理解)。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
function init() {
let fragment = document.createDocumentFragment();
for (let i = 0; i < 10; i++) {
let div = document.createElement('div'),
num = parseInt(Math.random() * 10);
arr.push({
val: num,
nodeIndex: i, //这里保存的是节点在nodeList中的位置
});

//

}
}

没想到面试的时候还是被问到了,当时连归并的大致流程都说不出来,实在是觉得很尴尬,今天重新学一下,附上理解并实现的代码。

归并排序的思想就是分而治之,递归地把一个序列一分为二,每次将上一步得到的有序子序列合并到一起。

演示过程:

演示