JSベースケース21-配列のバブルソート

1800 ワード

arr=[1,4,0,5,6,2,3];//を行ないます.
  • 発泡ソート第1の方法、単純版
  • 
        var arr=[1,4,0,5,6,2,3]
        var w=0;//        
        var n=0;//        
       for(var i=0;i<arr.length-1;i++){
            for(var j=0;j<arr.length-1;j++){
                if(arr[j]>arr[j+1]){//          ,        。
                    var temp=arr[j];//          。
                        arr[j]=arr[j+1];//           。
                        arr[j+1]=temp;//            。    。
                }
                n++
            }
            w++
       }
       console.log(arr)
       console.log(w)
       console.log(n)
    
    
  • バブルソート第2の方法、簡単版の兄.
  • 
        var arr=[1,4,0,5,6,2,3]
        var w=0;//        
        var n=0;//        
       for(var i=0;i<arr.length-1;i++){
            for(var j=0;j<arr.length-1-i;j++){//         i,         。
                if(arr[j]>arr[j+1]){
                    var temp=arr[j];
                        arr[j]=arr[j+1];
                        arr[j+1]=temp;
                }
                n++
            }
            w++
       }
       console.log(arr)
       console.log(w)
       console.log(n)
    
    
  • バブルソート第3の方法最終版「開閉原則」
  • 
        var arr=[1,4,0,5,6,2,3]
        var w=0;//        
        var n=0;//        
        var bool=true;
       for(var i=0;i<arr.length-1;i++){
            for(var j=0;j<arr.length-1-i;j++){
                if(arr[j]>arr[j+1]){
                    var temp=arr[j];
                        arr[j]=arr[j+1];
                        arr[j+1]=temp;
                        bool=false;//     ,      。
                }
                n++
            }
            if(bool){//  bool  true 。    ,              。
                    break;
                }
            w++
       }
       console.log(arr)
       console.log(w)
       console.log(n)
    
    

    万千の感銘を受け,設計の巧みさ.