JS MaxHeap 排序
class MaxHeap { constructor(data) { this.store = data; } heapify(store, topIndex) { let top = topIndex; let left = 2 * top + 1; let right = 2 * top + 2; if (store[top] < store[right]) top = right; if (store[top] < store[left]) top = left; if (top != topIndex) { return this.swap(store, top, topIndex) } return this.store; } build() { let top = Math.floor(this.store.length / 2 - 1); for (let i = top; i >= 0; i--) { this.store = this.heapify(this.store, i) } } getStore() { return this.store; } swap(store, i, j) { const temp = store[i]; store[i] = store[j]; store[j] = temp; return store; } sort() { const newStore = []; for (let i = this.store.length; i > 0; i--) { this.build(); newStore.push(this.store.shift()) } return newStore; } } module.exports = MaxHeap;
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
上一篇: Vue 多环境配置
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论