ホームページ >ウェブフロントエンド >jsチュートリアル >シンプルなバブルおよび双方向バブル ソートのケース

シンプルなバブルおよび双方向バブル ソートのケース

php中世界最好的语言
php中世界最好的语言オリジナル
2018-03-08 13:44:381968ブラウズ

今回は簡単なバブルと双方向バブルソートの事例をお届けします。バブルシーケンスを使用する際の注意点は何ですか? , 以下は実際的なケースですので、見てみましょう。

バブル ソートの例、双方向バブル ソート、および双方向バブル ソートの視覚化がわずかに改善されました。

バブル ソートの例

var ls=[ 98,13,6,25,38,36,30,44,38,80,61,28,47,34,95,18,85,58,89,85,42,61,74,35,13,14,80,7,10,44,10,47,13,11,52,25,24,48,34,12,88,80,33,8,80,45,64,52,79,77 ];
 
for(var i=0;i<ls.length;i++){
            for(var j=i+1;j<ls.length;j++){
                if(ls[i]>ls[j]){
                    ls[i]=ls[i]+ls[j];
                    ls[j]=ls[i]-ls[j];
                    ls[i]=ls[i]-ls[j];
                }
            }
        }

双方向バブル ソートの例

var ls=[ 6,13,98,25,38,36,30,44,38,80,61,28,47,34,95,18,85,58,89,85,42,61,74,35,13,14,80,7,10,44,10,47,13,11,52,25,24,48,34,12,88,80,33,8,80,45,64,52,79,77 ];
 
for(var i=0;i<ls.length;i++){
            for(var j=i+1;j<ls.length-i;j++){
                if(ls[lent-1-i]<ls[lent-j]){
                    ls[lent-1-i]=ls[lent-1-i]+ls[lent-j];
                    ls[lent-j]=ls[lent-1-i]-ls[lent-j];
                    ls[lent-1-i]=ls[lent-1-i]-ls[lent-j];
                }//后面的比较
                if(ls[i]>ls[j]){
                    ls[i]=ls[i]+ls[j];
                    ls[j]=ls[i]-ls[j];
                    ls[i]=ls[i]-ls[j];
                }//前面的比较
            }
        }

双方向バブル ソートの少し改良された例

var ls=[ 98,13,6,25,38,36,30,44,38,80,61,28,47,34,95,18,85,58,89,85,42,61,74,35,13,14,80,7,10,44,10,47,13,11,52,25,24,48,34,12,88,80,33,8,80,45,64,52,79,77 ];
 
var lent=ls.length;
for(var i=0;i<ls.length;i++){
            for(var j=i*2;j<ls.length-2*i;j++){
                if(ls[i*2]>ls[j+1]){
                    ls[i*2]=ls[i*2]+ls[j+1];
                    ls[j+1]=ls[i*2]-ls[j+1];
                    ls[i*2]=ls[i*2]-ls[j+1];
                }//保持内层第一个数为循环最小
                 
                if(ls[lent-i*2-1]<ls[lent-j-1]){
                    ls[lent-i*2-1]=ls[lent-i*2-1]+ls[lent-j-1];
                    ls[lent-j-1]=ls[lent-i*2-1]-ls[lent-j-1];
                    ls[lent-i*2-1]=ls[lent-i*2-1]-ls[lent-j-1];
                }////保持内层倒数第一个数为循环最大
                     
                    if(ls[lent-2-i*2]<ls[lent-j-1]){
                        ls[lent-2-i*2]=ls[lent-2-i*2]+ls[lent-j-1];
                        ls[lent-j-1]=ls[lent-2-i*2]-ls[lent-j-1];
                        ls[lent-2-i*2]=ls[lent-2-i*2]-ls[lent-j-1];
                    }//倒数上一个
                     
                    if(ls[i*2+1]>ls[j+1]){
                        ls[i*2+1]=ls[i*2+1]+ls[j+1];
                        ls[j+1]=ls[i*2+1]-ls[j+1];
                        ls[i*2+1]=ls[i*2+1]-ls[j+1];
                    }//下一个
            }
}

この記事の事例を読んだ後は、この方法を習得したと思います。 PHP 中国語 Web サイトの他の関連記事にも注目してください。

関連記事:

Webページ上のコンテンツを素早く保存し、不要な要素を削除する方法

シンプルな画像クリックアップロード機能

以上がシンプルなバブルおよび双方向バブル ソートのケースの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。