javascript - java - 如何仅使用for循环、if语句和while循环在Javasctipt中对数组的升序进行排序?
问题描述
我想在下面提升这个数组。[1, 2,3,5, 3, 2, 4,] 到 [1,2,2,3,3,4,5]
但我下面的代码没有正确回答。有人可以教我如何使用 javascript 对数字数组进行排序吗?
var arr = [1, 2,3,5, 3, 2, 4,];
for (var i = 0; i < arr.length - 1; i++){
var left = arr[i];
var right = arr[i + 1];
if (left > right) {
arr[i + 1] = left;
arr[i] = right;
}
}
console.log(arr);
解决方案
这是冒泡排序算法,仅使用for-loop
和while
const arr = [1, 2, 3, 5, 3, 2, 4];
let is_sorted = false;
while (!is_sorted) {
is_sorted = true;
for (let i = 1; i < arr.length; i++) {
if (arr[i - 1] > arr[i]) {
// swap
const temp = arr[i - 1];
arr[i - 1] = arr[i];
arr[i] = temp;
is_sorted = false;
}
}
}
console.log(arr);
推荐阅读
- terminal - Jupyter 笔记本中的 Julia .jl
- excel - 如何从 Excel vba 向电子邮件正文添加多个超链接
- reactjs - 从 Stripe OAuth Redirect-URI(Stripe OAuth、Firebase 后端、React 前端)读取返回的数据
- python - 如何在pygame中向鼠标光标射击子弹
- python - Odoo:更新相关字段而不更改其原始值
- java - 带有凌空攻击的 Http Post 请求
- node.js - 如何为 Heroku 公关审查应用程序自动添加所需的 Strapi(postgres) 配置变量
- php - 通过 API 为未经身份验证的用户创建具有读取功能的 Google 云存储桶
- python - 张量流中的实现决策树
- netsuite - 如何通过代码更改脚本的部署状态?Netsuite SuiteScript 2.0