仅使用if语句排序4个数字,否则使用javascript

时间:2015-10-04 08:10:47

标签: javascript

我想仅使用if else来排序4个数字,否则如果不使用sort函数我怎样才能在javascript上执行此操作?

2 个答案:

答案 0 :(得分:0)

nothing 超过ifelse(可能是赋值语句或其他方式可以交换元素),排序的唯一方法就是展开一个将循环分类为单独的比较。

这是一些针对三个元素的伪代码:

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);
}