gpt4 book ai didi

javascript - JavaScript 中的冒泡排序

转载 作者:行者123 更新时间:2023-12-02 14:39:04 27 4
gpt4 key购买 nike

我尝试在 JavaScript 中使用冒泡排序,但在交换数字时卡住了。这个想法是将数字分组(例如:输入:154514,输出应该是:114455)。所以我尝试使用冒泡排序来得到上面的输出。

我的代码在这里:

function numSort(num){
var temp = '';
var temp1 = '';
arr = num.toString();
var n = arr.length;
for(i=0; i<n-1; i++){
for(d=0; d<n-i-1; d++){
if(arr[d] > arr[d+1]){
temp = arr[d];//here I'm trying to swap the inputs as: 89, but it's not letting.
arr[d] = arr[d+1];
arr[d+1] = temp;
}console.log(arr[d]);
}
}
}console.log(numSort(98));

交换不起作用。请帮忙。

提前非常感谢。

最佳答案

所以你们实际上非常接近。您遇到的问题是,您无法通过访问索引处的字符来更改字符串中特定字符的值,因为字符串是不可变的。因此,如果我有字符串 var a = "test"; 并且我这样做 a[2] = 'p'; a 仍然会是"test" 而不是 "tept" 因为字符串是不可变的。话虽这么说,我们需要做的就是将字符串转换为数组(可变的),然后再转换回字符串,如下所示:

function numSort(num){
var temp = '';
var temp1 = '';
arr = num.toString().split(''); // turn the string into an array
var n = arr.length;
for(i=0; i<n-1; i++){
for(d=0; d<n-i-1; d++){
if(arr[d] > arr[d+1]){
temp = arr[d]; // here I'm trying to swap the inputs as: 89, but it's not letting.
arr[d] = arr[d+1];
arr[d+1] = temp;
}
console.log(arr[d]);
}
}
return arr.join(''); // you can optionally do a parseInt() here to convert it back to a number
}
console.log(numSort(98));

为了将字符串转换为数组,我们使用 split()然后join()将数组转换回字符串。

关于javascript - JavaScript 中的冒泡排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37180356/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com