Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitc27a845

Browse files
committed
Add use strict
1 parent370e8c7 commitc27a845

File tree

1 file changed

+95
-87
lines changed

1 file changed

+95
-87
lines changed

‎src/sorting/linearsort/bucketsort.js

Lines changed: 95 additions & 87 deletions
Original file line numberDiff line numberDiff line change
@@ -1,104 +1,112 @@
1-
/**
2-
* Bucketsort. This algorithm has complexity O(n) but it's not
3-
* correct for every input.
4-
*
5-
*@public
6-
*/
7-
varbucketSort=(function(){
1+
(function(exports){
2+
3+
'use strict';
84

95
/**
10-
* Insertionsort.
6+
* Bucketsort. This algorithm has complexity O(n) but it's not
7+
* correct for every input.
118
*
12-
*@private
13-
*@param {array} array Input array
14-
*@returns {array} array Sorted input array
9+
*@public
1510
*/
16-
functioninsertionSort(array){
17-
varcurrent,
18-
j;
19-
for(vari=1;i<array.length;i+=1){
20-
current=array[i];
21-
j=i-1;
22-
while(j>=0&&current<array[j]){
23-
array[j+1]=array[j];
24-
j-=1;
11+
varbucketSort=(function(){
12+
13+
/**
14+
* Insertionsort.
15+
*
16+
*@private
17+
*@param {array} array Input array
18+
*@returns {array} array Sorted input array
19+
*/
20+
functioninsertionSort(array){
21+
varcurrent,
22+
j;
23+
for(vari=1;i<array.length;i+=1){
24+
current=array[i];
25+
j=i-1;
26+
while(j>=0&&current<array[j]){
27+
array[j+1]=array[j];
28+
j-=1;
29+
}
30+
array[j+1]=current;
2531
}
26-
array[j+1]=current;
32+
returnarray;
2733
}
28-
returnarray;
29-
}
3034

31-
/**
32-
* Creates buckets for given array
33-
*
34-
*@private
35-
*@param {array} array Input array
36-
*@returns {array} buckets Array whith array for each bucket.
37-
* Each bucket contains an array with all elements from the input which are with suitable size.
38-
*/
39-
functioncreateBuckets(array){
40-
varbuckets=[],
41-
currentBucket,
42-
current,
43-
sectorSize=1/array.length;
44-
for(vari=0;i<array.length;i+=1){
45-
current=array[i];
46-
currentBucket=Math.floor(current/sectorSize);
47-
if(buckets[currentBucket]===undefined){
48-
buckets[currentBucket]=[];
35+
/**
36+
* Creates buckets for given array
37+
*
38+
*@private
39+
*@param {array} array Input array
40+
*@returns {array} buckets Array whith array for each bucket.
41+
* Each bucket contains an array with all elements from the input which are with suitable size.
42+
*/
43+
functioncreateBuckets(array){
44+
varbuckets=[],
45+
currentBucket,
46+
current,
47+
sectorSize=1/array.length;
48+
for(vari=0;i<array.length;i+=1){
49+
current=array[i];
50+
currentBucket=Math.floor(current/sectorSize);
51+
if(buckets[currentBucket]===undefined){
52+
buckets[currentBucket]=[];
53+
}
54+
buckets[currentBucket].push(current);
4955
}
50-
buckets[currentBucket].push(current);
56+
returnbuckets;
5157
}
52-
returnbuckets;
53-
}
5458

55-
/**
56-
* Sorts the arrays from each bucket.
57-
*
58-
*@private
59-
*@param {array} buckets Given buckets
60-
*@returns {array} buckets Buckets with sorted arrays for each bucket
61-
*/
62-
functionsortBuckets(buckets){
63-
for(vari=0;i<buckets.length;i+=1){
64-
if(buckets[i]!==undefined){
65-
insertionSort(buckets[i]);
59+
/**
60+
* Sorts the arrays from each bucket.
61+
*
62+
*@private
63+
*@param {array} buckets Given buckets
64+
*@returns {array} buckets Buckets with sorted arrays for each bucket
65+
*/
66+
functionsortBuckets(buckets){
67+
for(vari=0;i<buckets.length;i+=1){
68+
if(buckets[i]!==undefined){
69+
insertionSort(buckets[i]);
70+
}
6671
}
72+
returnbuckets;
6773
}
68-
returnbuckets;
69-
}
7074

71-
/**
72-
* Unions all buckets' arrays
73-
*
74-
*@private
75-
*@param {array} buckets Input buckets
76-
*@returns {array} result Sorted array which contains all elements form each bucket
77-
*/
78-
functionunionBuckets(buckets){
79-
varresult=[],
80-
currentBucket;
81-
for(vari=0;i<buckets.length;i+=1){
82-
currentBucket=buckets[i];
83-
if(currentBucket!==undefined){
84-
for(varj=0;j<currentBucket.length;j+=1){
85-
result.push(currentBucket[j]);
75+
/**
76+
* Unions all buckets' arrays
77+
*
78+
*@private
79+
*@param {array} buckets Input buckets
80+
*@returns {array} result Sorted array which contains all elements form each bucket
81+
*/
82+
functionunionBuckets(buckets){
83+
varresult=[],
84+
currentBucket;
85+
for(vari=0;i<buckets.length;i+=1){
86+
currentBucket=buckets[i];
87+
if(currentBucket!==undefined){
88+
for(varj=0;j<currentBucket.length;j+=1){
89+
result.push(currentBucket[j]);
90+
}
8691
}
8792
}
93+
returnresult;
8894
}
89-
returnresult;
90-
}
9195

92-
/**
93-
* Sorts given array with bucketsort
94-
*
95-
*@public
96-
*@param {array} array Input array which should be sorted
97-
*@returns {array} Sorted array
98-
*/
99-
returnfunction(array){
100-
varbuckets=createBuckets(array);
101-
sortBuckets(buckets);
102-
returnunionBuckets(buckets);
103-
};
104-
}());
96+
/**
97+
* Sorts given array with bucketsort
98+
*
99+
*@public
100+
*@param {array} array Input array which should be sorted
101+
*@returns {array} Sorted array
102+
*/
103+
returnfunction(array){
104+
varbuckets=createBuckets(array);
105+
sortBuckets(buckets);
106+
returnunionBuckets(buckets);
107+
};
108+
}());
109+
110+
exports.bucketSort=bucketSort;
111+
112+
}(typeofexports==='undefined' ?window :exports));

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp