在 JavaScript 中实现并发冒泡排序可以使用 Web Workers 来实现并行处理。以下是一个简单的示例代码,演示如何使用 Web Worker 进行并发冒泡排序:
首先,创建一个 Web Worker 脚本 worker.js:
// worker.jsself.onmessage = function (event) { const array = event.data; bubbleSort(array); self.postMessage(array);}
function bubbleSort(arr: number[]): void { const n = arr.length; for (let i = 0; i < n - 1; i++) { for (let j = 0; j < n - i - 1; j++) { if (arr[j] > arr[j + 1]) { const temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; } } }}
接下来,在主线程中使用这个 Worker 进行排序:
// main.jsconst arrayToSort = [64, 34, 25, 12, 22, 11, 90];
const worker = new Worker('worker.js');
worker.postMessage(arrayToSort);
worker.onmessage = function (event) { console.log('排序后的数组:', event.data);}
worker.onerror = function (error) { console.error('Worker 发生错误:', error);}
说明:
worker.js 中定义了一个简单的冒泡排序函数 bubbleSort,它接收一个数组并进行排序。
main.js 中创建了一个 Worker 实例,并向其发送要排序的数组。
Worker 处理完毕后,将排序结果发送回主线程,主线程接收到消息后打印结果。
注意事项:
Web Worker 允许将计算密集型的任务从主线程分离出来,从而避免页面卡顿。
领取专属 10元无门槛券
私享最新 技术干货