File tree Expand file tree Collapse file tree 4 files changed +44
-24
lines changed Expand file tree Collapse file tree 4 files changed +44
-24
lines changed Original file line number Diff line number Diff line change @@ -19,31 +19,14 @@ console.log('排序数组', arr);
1919 * @returns  {Array } 
2020 */ 
2121function  bubbleSort ( arr )  { 
22-     let  len  =  arr . length ; 
23-     for  ( let  i  =  0 ;  i  <  len  -  1 ;  i ++ )  { 
24-         for  ( let  j  =  i  +  1 ;  j  <  len ;  j ++ )  { 
25-             if  ( arr [ i ]  >  arr [ j ] )  { 
26-                 [ arr [ i ] ,  arr [ j ] ]  =  [ arr [ j ] ,  arr [ i ] ] 
27-             } 
28-         } 
29-     } 
30-     return  arr ; 
31- } 
32- 
33- /** 
34-  * 冒泡排序,从小到大排序,把最大的数放到末尾 
35-  * @param  arr 
36-  * @returns  {Array } 
37-  */ 
38- function  bubbleSort2 ( arr )  { 
39-     let  len  =  arr . length ; 
40-     for  ( let  i  =  0 ;  i  <  len  -  1 ;  i ++ )  { 
41-         for  ( let  j  =  0 ;  j  <  len  -  i  -  1 ;  j ++ )  { 
42-             if  ( arr [ j ]  >  arr [ j  +  1 ] )  { 
22+     let  length  =  arr . length ; 
23+     for  ( let  i  =  0 ;  i  <  length  -  1 ;  i ++ )  { 
24+         for  ( let  j  =  0 ;  j  <  length  -  1  -  i ;  j ++ )  { 
25+             if  ( arr [ j ]  >  arr [ j  +  1 ] )  {  // 修改这判断,可以改成从大到小排序 
4326                [ arr [ j ] ,  arr [ j  +  1 ] ]  =  [ arr [ j  +  1 ] ,  arr [ j ] ] 
4427            } 
4528        } 
4629    } 
47-     return  arr ; 
30+     return  arr 
4831} 
4932
Original file line number Diff line number Diff line change 2525
2626由于算法复杂度高,但是比较容易掌握,一般都作为入门算法,我反正大学毕业了也只会这一种,正式场合慎用。  
2727
28+ >  我多实现了一种算法 sort_selection.js ` 选择排序 ` ,用于跟冒泡排序比较,方便理解区分这两种算法
2829
2930## 快速排序  
3031
Original file line number Diff line number Diff line change 1+ /** 
2+  * 选择排序 
3+  */ 
4+ "use strict" ; 
5+ 
6+ const  util  =  require ( '../../util.js' ) ; 
7+ 
8+ let  arr  =  util . randomArray ( 4 ,  99 ,  20 ) ; 
9+ 
10+ console . log ( '随机数组' ,  arr ) ; 
11+ 
12+ arr  =  selectionSort ( arr ) ; 
13+ 
14+ console . log ( '排序数组' ,  arr ) ; 
15+ 
16+ /** 
17+  * 选择排序,从小到大排序,把最小的数先提到开头 
18+  * @param  arr 
19+  * @returns  {Array } 
20+  */ 
21+ function  selectionSort ( arr )  { 
22+     let  len  =  arr . length ; 
23+     for  ( let  i  =  0 ;  i  <  len  -  1 ;  i ++ )  { 
24+         for  ( let  j  =  i  +  1 ;  j  <  len ;  j ++ )  { 
25+             if  ( arr [ i ]  >  arr [ j ] )  { 
26+                 [ arr [ i ] ,  arr [ j ] ]  =  [ arr [ j ] ,  arr [ i ] ] 
27+             } 
28+         } 
29+     } 
30+     return  arr ; 
31+ } 
32+ 
33+ 
Original file line number Diff line number Diff line change 1010>  [ Leetcode Solutions with JavaScript] ( https://github.com/hanzichi/leetcode )   
1111>  [ LeetCode-in-Go] ( https://github.com/aQuaYi/LeetCode-in-Go )   
1212
13- 工具  
13+ 工具    
1414>  [ leetcode cli] ( https://github.com/skygragon/leetcode-cli )  针对 https://leetcode.com/  使用  
1515
16- 目录
16+ 目录   
1717-  [ 《啊哈!算法》代码 JS 实现] ( ./Aha-Algorithms )   
1818-  [ 《算法图解》代码 JS 实现] ( ./Grokking-Algorithms )   
1919-  [  LeetCode Algorithms ] ( ./LeetCode ) 
2020-  [  笔记 Notes ] ( ./notes ) 
2121
22+ 使用    
23+ 由于运行代码依赖工具类 util.js,LeetCode/leetcode.js ,所以需要先安装依赖包,在根目录执行 ` yarn install `  即可
24+ 
 
 
   
 
     
   
   
          
    
    
     
    
      
     
     
    You can’t perform that action at this time.
  
 
    
  
    
      
        
     
       
      
     
   
 
    
    
  
 
  
 
     
    
0 commit comments