-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathquickSort.js
More file actions
78 lines (59 loc) · 1.44 KB
/
quickSort.js
File metadata and controls
78 lines (59 loc) · 1.44 KB
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
var qLines = []
function setup(){
qSortCanvas = createCanvas(1000, 800);
qSortCanvas.parent("qCanvas");
for (var i = 0; i<width; i++){
qLines[i] = random(0, height);
}
console.log(qLines);
}
function draw(){
background(0);
for (var i = 0; i<qLines.length; i++){
if (i%2==0){
stroke(155);
strokeWeight(5);
line(i, height, i, height-qLines[i]);
}else{
stroke(55);
strokeWeight(5);
line(i, height, i, height-qLines[i]);
}
}
qLines = quickSort(qLines);
}
function controlRecursion(arr){
return
}
function quickSort(arr){
if (arr.length<2){
return arr;
}
var small = [];
var newArr = [];
var big = [];
//var pivot = arr[random(0, arr.length)-1];
var pivot = arr.pop();
for (var i = 0; i<arr.length; i++){
if (arr[i]<=pivot){
small.push(arr[i]);
}else if (arr[i]>pivot){
big.push(arr[i]);
}
}
return newArr.concat(quickSort(big), pivot ,quickSort(small));
}
/**
* def quickSort(l):
from random import randint
if len(l)<2:
return l
small,equal,big = [],[],[]
pivot = l[randint(0,len(l)-1)]
for i in l:
if i<pivot: small.append(i)
elif i==pivot: equal.append(i)
elif i>pivot: big.append(i)
return quickSort(small)+quickSort(equal)+quickSort(big)
*
*/