2016-11-29 32 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