我想仅使用if else来排序4个数字,否则如果不使用sort函数我怎样才能在javascript上执行此操作?
答案 0 :(得分:0)
nothing 超过if
和else
(可能是赋值语句或其他方式可以交换元素),排序的唯一方法就是展开一个将循环分类为单独的比较。
这是一些针对三个元素的伪代码:
if element[0] > element[1]: # swap 0/1 if needed
temp = element[1]
element[1] = element[0]
element[0] = temp
if element[1] > element[2]: # swap 1/2 if needed
temp = element[2]
element[2] = element[1]
element[1] = temp
if element[0] > element[1]: # swap 0/1 if needed
temp = element[1]
element[1] = element[0]
element[0] = temp
显然,一旦你有三个以上的元素,那就变得更加繁重了(我只会做评论):
# swap 0/1 if needed
# swap 1/2 if needed
# swap 2/3 if needed
# swap 0/1 if needed
# swap 1/2 if needed
# swap 0/1 if needed
除此之外的任何事情(或者,说实话,甚至那个)应该尽可能使用循环或内置排序方法。
答案 1 :(得分:0)
var a = [7,4,6,3];
function swap(a, i, j) {
var tmp = a[i];
a[i] = a[j]
a[j] = tmp;
}
if (a[0] > a[3]) {
swap(a, 0, 3);
}
if (a[1] > a[3]) {
swap(a, 1, 3);
}
if (a[2] > a[3]) {
swap(a, 2, 3);
}
if (a[0] > a[2]) {
swap(a, 0, 2);
}
if (a[1] > a[2]) {
swap(a, 1, 2);
}
if (a[0] > a[1]) {
swap(a, 0, 1);
}