如何实现数组末位排序
比如一个数组:
[235, 42, 8, 100]
现在需要按末位进行排序, 最后的结果应该是:
[100, 42, 235, 8]
请问:如何实现这个功能, 需要的是算法
感谢@lejoy指点, 一个简单的冒泡末位排序可以这样:
function sort(arr) {
for (let i = 0; i < arr.length; i++) {
for (let j = 1; j < arr.length; j++) {
// 和冒泡排序差别就在这行...
if (arr[j] % 10 < arr[j - 1] % 10) {
let tmp = arr[j - 1]
arr[j - 1] = arr[j]
arr[j] = tmp
}
}
}
console.log(arr)
}
sort([55, 41, 32, 23, 19])
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
和普通的排序方式一样。比如,冒泡排序:遍历,比较二者。区别在于:你这个需求,在比较的时候,两个值都 %10 取模, 小的放前面,大的放后面...
其他语言怎么排js就怎么排吧 不实用内置函数不就纯算法了嘛
去VisuAlgo的排序分类里选一个实现吧,逻辑搞不定的话右下角有伪代码。
我的这个如果 末位相同可能就会有问题 你自己再处理一下, 但是就现在的数据是可以的