File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ {
2+ "configurations" : [
3+ {
4+ "type" : " java" ,
5+ "name" : " CodeLens (Launch) - App" ,
6+ "request" : " launch" ,
7+ "mainClass" : " App" ,
8+ "projectName" : " Javascript Algorithm_723097d"
9+ }
10+ ]
11+ }
Original file line number Diff line number Diff line change 1+ module . exports = function BubbleSort ( nums ) {
2+ if ( nums === null || nums . length <= 1 ) return ;
3+ for ( var i = nums . length - 1 ; i > 0 ; i -- ) {
4+ for ( var j = 0 ; j < i ; j ++ ) {
5+ if ( nums [ j ] > nums [ j + 1 ] ) {
6+ var t = nums [ j ] ;
7+ nums [ j ] = nums [ j + 1 ] ;
8+ nums [ j + 1 ] = t ;
9+ }
10+ }
11+ }
12+ }
13+
14+
15+
Original file line number Diff line number Diff line change 1+ module . exports = function InsertSort ( nums ) {
2+ if ( nums === null || nums . length <= 1 ) return ;
3+ for ( var i = 1 ; i < nums . length ; i ++ ) {
4+ for ( var j = i - 1 ; j >= 0 && nums [ j ] > nums [ j + 1 ] ; j -- ) {
5+ swap ( nums , j , j + 1 ) ;
6+ }
7+ }
8+ }
9+
10+ function swap ( nums , a , b ) {
11+ var t = nums [ a ] ;
12+ nums [ a ] = nums [ b ] ;
13+ nums [ b ] = t ;
14+ }
Original file line number Diff line number Diff line change 1+ module . exports = function SelectSort ( nums ) {
2+ if ( nums === null || nums . length <= 1 ) return ;
3+ for ( var i = 0 ; i < nums . length ; i ++ ) {
4+ var minIndex = i ;
5+ for ( var j = i + 1 ; j < nums . length ; j ++ ) {
6+ if ( nums [ j ] < nums [ minIndex ] ) {
7+ minIndex = j ;
8+ }
9+ }
10+ if ( minIndex !== i ) {
11+ var t = nums [ minIndex ] ;
12+ nums [ minIndex ] = nums [ i ] ;
13+ nums [ i ] = t ;
14+ }
15+ }
16+ }
Original file line number Diff line number Diff line change 1+ var BubbleSort = require ( './BubbleSort' ) ;
2+ var InsertSort = require ( './InsertSort' ) ;
3+ var SelectSort = require ( './SelectSort' ) ;
4+
5+ function generateRandomAray ( maxSize , maxValue ) {
6+ var n = parseInt ( ( maxSize + 1 ) * Math . random ( ) ) ;
7+ var res = new Array ( ) ;
8+ for ( var i = 0 ; i < n ; i ++ ) {
9+ res [ i ] = parseInt ( ( maxValue + 1 ) * Math . random ( ) ) ;
10+ }
11+ return res ;
12+ }
13+
14+ function isEqual ( arr1 , arr2 ) {
15+ if ( ( arr1 === null && arr2 !== null ) || ( arr1 !== null && arr2 === null ) ) {
16+ return false ;
17+ }
18+ if ( arr1 === null && arr2 === null ) {
19+ return true ;
20+ }
21+ if ( arr1 . length !== arr2 . length ) {
22+ return false ;
23+ }
24+ for ( var i = 0 ; i < arr1 . length ; i ++ ) {
25+ if ( arr1 [ i ] !== arr2 [ i ] )
26+ return false ;
27+ }
28+ return true ;
29+ }
30+
31+ function printArray ( nums ) {
32+ if ( nums === null ) return ;
33+ var s = "" ;
34+ for ( var i = 0 ; i < nums . length ; i ++ ) {
35+ s += nums [ i ] + " " ;
36+ }
37+ }
38+
39+ function comparator ( nums ) {
40+ nums . sort ( ( a , b ) => a - b ) ;
41+ }
42+ // 测试
43+
44+ var testTime = 1000 ;
45+ var maxSize = 100 ;
46+ var maxValue = 100 ;
47+ var succeed = true ;
48+ for ( var i = 0 ; i < testTime ; i ++ ) {
49+ var arr1 = generateRandomAray ( maxSize , maxValue ) ;
50+ var arr2 = [ ...arr1 ] ;
51+ SelectSort ( arr1 ) ;
52+ comparator ( arr2 ) ;
53+ if ( ! isEqual ( arr1 , arr2 ) ) {
54+ succeed = false ;
55+ break ;
56+ }
57+ }
58+ console . log ( succeed ? "Nice!" : "Fucking fucked!" ) ;
You can’t perform that action at this time.
0 commit comments