2016-11-29 35 views
-2

工作我有阵列这样 值= [250,200,300,150,300]数组排序不是在JS

我使用此代码。

​​

但是,它不工作。它的结果值= [200,250,150,300,300]

我想在不使用内置函数的情况下实现这个功能。

+3

一个循环,你没有得到一个排序的数组。 –

+0

单循环排序是不可能的。您可以使用内部排序方法https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/sort或使用排序算法http://khan4019.github.io/front-end -Interview-Questions/sort.html –

+0

为什么你不只是'value.sort()' – adeneo

回答

-1

你应该有两个循环另外一个内部排序阵列

value = [250, 200, 300, 150, 300] 
 
for (var i = 0; i < value.length; i++) 
 
    for (var j = i; j < value.length - 1; j++) { 
 
    if (value[i] > value[j]) { 
 
     var temp = value[j]; 
 
     value[j] = value[i]; 
 
     value[i] = temp; 
 
    } 
 
    } 
 

 
console.log(value)

0

使用下面的代码。

var value = [250, 200, 300, 150, 300]; 
 

 
for (var i = 0; i < value.length; i++) { 
 
    var swapped = false 
 
    for (var j = 0; j < value.length; j++) { 
 
    if (value[j] > value[j + 1]) { 
 
     temp = value[j + 1]; 
 
     value[j + 1] = value[j]; 
 
     value[j] = temp; 
 
     swapped = true; 
 
    } 
 
    } 
 
    if (!swapped) { 
 
    break; 
 
    } 
 
} 
 
console.log(value)

+0

请解释你的尝试。只是把工作代码不够好 – Rajesh

+0

它需要2个循环,如泡泡分类算法中所定义的,以按照算法中的定义来检查每一遍parellely https://www.tutorialspoint.com/data_structures_algorithms/bubble_sort_algorithm.htm –

+0

我知道泡泡的算法分类。我的意思是,在你的回答中解释你的尝试,以便如果没有足够知识的人阅读你的答案,他就会明白发生了什么。 – Rajesh