当前位置:首页 > JavaScript

js用栈实现排序

2026-03-01 20:08:17JavaScript

使用栈实现排序的方法

在JavaScript中,可以通过两个栈来模拟排序算法。这种方法类似于插入排序,利用辅助栈来保持元素的顺序。以下是具体实现步骤:

初始化两个栈

创建一个主栈stack用于存放未排序的元素,另一个辅助栈tempStack用于临时存放已排序的元素。

const stack = [34, 3, 31, 98, 92, 23];
const tempStack = [];

排序过程

从主栈中弹出元素,与辅助栈的栈顶元素比较,确保辅助栈中的元素始终按升序排列。

while (stack.length > 0) {
    const current = stack.pop();
    while (tempStack.length > 0 && tempStack[tempStack.length - 1] > current) {
        stack.push(tempStack.pop());
    }
    tempStack.push(current);
}

结果输出

排序完成后,辅助栈tempStack中的元素即为升序排列的结果。

console.log(tempStack); // [3, 23, 31, 34, 92, 98]

完整代码示例

以下是将上述步骤整合为一个完整函数的代码:

function sortStack(stack) {
    const tempStack = [];
    while (stack.length > 0) {
        const current = stack.pop();
        while (tempStack.length > 0 && tempStack[tempStack.length - 1] > current) {
            stack.push(tempStack.pop());
        }
        tempStack.push(current);
    }
    return tempStack;
}

const stack = [34, 3, 31, 98, 92, 23];
const sortedStack = sortStack(stack);
console.log(sortedStack); // [3, 23, 31, 34, 92, 98]

注意事项

  • 该方法的时间复杂度为O(n²),适合小规模数据排序。
  • 确保主栈中的元素全部弹出并正确插入辅助栈,否则会导致排序失败。

js用栈实现排序

标签: js
分享给朋友:

相关文章

js实现验证码

js实现验证码

实现验证码的JavaScript方法 生成随机验证码 使用Math.random()生成随机字符串,结合数字和字母: function generateCaptcha() { const ch…

jquery.js

jquery.js

jQuery 简介 jQuery 是一个快速、简洁的 JavaScript 库,用于简化 HTML 文档遍历、事件处理、动画设计和 Ajax 交互。它的设计宗旨是“Write Less, Do Mor…

原生js实现轮播图

原生js实现轮播图

基本结构搭建 HTML部分需要包含轮播图容器、图片列表及导航按钮。结构示例如下: <div class="slider-container"> <div class="slid…

js实现论坛

js实现论坛

实现论坛的基本功能 使用JavaScript实现一个论坛需要结合前端和后端技术。前端可以使用React、Vue或Angular等框架,后端可以选择Node.js配合Express或Koa框架。数据库可…

js实现报表

js实现报表

使用JavaScript实现报表 在JavaScript中实现报表功能可以通过多种方式完成,常见的方法包括使用原生JavaScript、第三方库(如Chart.js、D3.js)或结合后端数据渲染。以…

js手势实现

js手势实现

手势识别实现方法 在JavaScript中实现手势识别通常涉及监听触摸事件(touchstart、touchmove、touchend)或鼠标事件(mousedown、mousemove、mouseu…