-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathStalin Sort.js
More file actions
39 lines (36 loc) · 880 Bytes
/
Stalin Sort.js
File metadata and controls
39 lines (36 loc) · 880 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
// Expirements - Stalin sort
var arr = [
4, 15, 23, 42, 8, 16, 38, 29, 11, 50,
3, 27, 19, 32, 12, 41, 37, 6, 21, 34
]
function stalinSort(array) {
var nArray = array
var last
var operatable = 0
var it = 0
var finished = false
var itsafchan = 0
while (!finished) {
var curVal = nArray[operatable]
if (last && (curVal < last)) {
nArray.splice(operatable, 1)
nArray.unshift(curVal)
last = undefined
itsafchan = 0
} else {
if (operatable < nArray.length) {
operatable++;
} else {
operatable = 0
}
last = curVal
}
itsafchan++
it++
if (itsafchan > array.length) {
finished = true
}
}
return [nArray, it]
}
console.log(stalinSort(arr))