Skip to content

Commit a10b5bd

Browse files
Update Fixes
1 parent 05f0f49 commit a10b5bd

File tree

1 file changed

+57
-63
lines changed

1 file changed

+57
-63
lines changed

Sorts/BitonicSort.js

Lines changed: 57 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -1,80 +1,74 @@
1+
/*
12
2-
/*
3-
43
* JS program for bitonic sort
54
* Bitonic Sort is a parallel sorting algorithm that works by dividing the
65
array into two parts, recursively sorting them, and then merging them in a
7-
specific way.
6+
specific way.
87
* more information: https://en.wikipedia.org/wiki/Bitonic_sorter
9-
8+
109
*/
11-
function compAndSwap(a, i, j, order){
12-
if ((a[i] > a[j] && order === 1) ||
13-
(a[i] < a[j] && order === 0))
14-
{
15-
// Swapping elements
16-
var temp = a[i];
17-
a[i] = a[j];
18-
a[j] = temp;
19-
}
20-
}
10+
function compAndSwap (a, i, j, order) {
11+
if ((a[i] > a[j] && order === 1) || (a[i] < a[j] && order === 0)) {
12+
// Swapping elements
13+
const temp = a[i]
14+
a[i] = a[j]
15+
a[j] = temp
16+
}
17+
}
2118

22-
// It recursively sorts a bitonic sequence in ascending
23-
//order, if order = 1
24-
function bitonicMergeArr(a, low, cnt, dir) {
25-
if (cnt > 1) {
26-
var k = parseInt(cnt / 2);
27-
for (var i = low; i < low + k; i++)
28-
compAndSwap(a, i, i + k, dir);
29-
bitonicMergeArr(a, low, k, dir);
30-
bitonicMergeArr(a, low + k, k, dir);
31-
}
32-
}
19+
// It recursively sorts a bitonic sequence in ascending
20+
// order, if order = 1
21+
function bitonicMergeArr (a, low, cnt, dir) {
22+
if (cnt > 1) {
23+
const k = parseInt(cnt / 2)
24+
for (let i = low; i < low + k; i++) { compAndSwap(a, i, i + k, dir) }
25+
bitonicMergeArr(a, low, k, dir)
26+
bitonicMergeArr(a, low + k, k, dir)
27+
}
28+
}
3329

34-
function bitonicSort(a, low, cnt, order) { //(arr 0 arrLen AS-Ds-order)
35-
if (cnt > 1) {
36-
var k = parseInt(cnt / 2);
30+
function bitonicSort (a, low, cnt, order) { // (arr 0 arrLen AS-Ds-order)
31+
if (cnt > 1) {
32+
const k = parseInt(cnt / 2)
3733

38-
// sort in ascending order since order here is 1
39-
bitonicSort(a, low, k, 1);
34+
// sort in ascending order since order here is 1
35+
bitonicSort(a, low, k, 1)
4036

41-
// sort in descending order since order here is 0
42-
bitonicSort(a, low + k, k, 0);
37+
// sort in descending order since order here is 0
38+
bitonicSort(a, low + k, k, 0)
4339

44-
// Will merge whole sequence in ascending order
45-
// since dir=1.
46-
bitonicMergeArr(a, low, cnt, order);
47-
}
48-
}
40+
// Will merge whole sequence in ascending order
41+
// since dir=1.
42+
bitonicMergeArr(a, low, cnt, order)
43+
}
44+
}
4945

50-
//Calling of bitonicSort func for sorting the entire array
51-
//of length N in ASCENDING order
52-
//here up=1 for ASCENDING & up=0 for DESCENDING
53-
function sort(a, N, up) {
54-
bitonicSort(a, 0, N, up);
55-
}
46+
// Calling of bitonicSort func for sorting the entire array
47+
// of length N in ASCENDING order
48+
// here up=1 for ASCENDING & up=0 for DESCENDING
49+
function sort (a, N, up) {
50+
bitonicSort(a, 0, N, up)
51+
}
5652

57-
//displaying array
58-
function logArray(arr) {
59-
for (var i = 0; i < arr.length; ++i)
60-
console.log(arr[i] + " ");
61-
}
53+
// displaying array
54+
function logArray (arr) {
55+
for (let i = 0; i < arr.length; ++i) { console.log(arr[i] + ' ') }
56+
}
6257

63-
export{ sort }
58+
export { sort }
6459

65-
// Test Case method
66-
// var a = [4, 16, 8, 0, 100];
67-
// var up = 1; //change to 0 for Descending
68-
// sort(a, a.length, up);
69-
// console.log("Sorted array: ");
70-
// logArray(a);
60+
// Test Case method
61+
const a = [4, 16, 8, 0, 100]
62+
const up = 1 // change to 0 for Descending
63+
sort(a, a.length, up)
64+
console.log('Sorted array: ')
65+
logArray(a)
7166

72-
/** Output:
73-
* Sorted array:
74-
0
75-
4
76-
8
77-
16
78-
100
67+
/** Output:
68+
* Sorted array:
69+
0
70+
4
71+
8
72+
16
73+
100
7974
*/
80-

0 commit comments

Comments
 (0)