コミック:三つの「素晴らしい」ソートアルゴリズム

著者|小さな灰色

ソース|プログラマ小さな灰色(ID:chengxuyuanxiaohui)

アルゴリズムの世界では、このようなクイックソート、マージソート、バケットソートなど、多くの効率的なソートアルゴリズムは、......彼らは大幅にプログラムのパフォーマンスを向上させるがあります。

しかし、より多くのエキゾチックなソートアルゴリズムのいくつかはありますが、彼らはどちらも高い効率を達成することはできません、何も良いの読みやすさはありません。それは彼らの存在の意味は何ですか?それは興味深いので。

それでは、で「気まぐれな」ソートアルゴリズムの3種類をご紹介しましょう。

ソート睡眠

次の日----- -----

public static void sleepSort(int[] array) {
    for (int num: array) {
        new Thread(() - > {
            try {
                Thread.sleep(num);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            System.out.println(num);
        }).start();
    }
}

public static void main(String[] args) {
    int[] array = {10,30,50,60,100,40,150,200,70};
    sleepSort(array);
}

------------

(小さな灰色のルバーブはショーに独自のコードを入れて)

ソート猿

おそらくこれは、より抽象的な言い、私たちがお見せしましょう:

ビーズソート

そろばん、以下のように見える人が知っている、多くのラウンドビーズがありますが、細かいそろばんの極に張られています。

そろばんを我慢するならば、何が起こるのだろうか?次のようにそろばんの小さなビーズは、そろばんの底に重力によって低下します。


それは何を意味するのでしょうか?我々は慎重に説明します。

ビーズの行方に先立ち、各ビーズは、いくつかの横を持っていますか?上記のように3、2、4、5、1、ビーズの各列の数は、列の数が乱れされます。

ビーズが落ちたとき、彼らはそれぞれ、いくつかの水平方向のビーズを持っていますか?上記のように、行あたりのビーズの数は1、2、3、4、5となる、一連の順序付けされました!

だから、我々はそれをソートする正の整数のセットに落下ビーズの原則をシミュレートすることができますか?答えはイエスです。

我々はそろばんをシミュレートするために、2次元アレイを使用することができ、ビーズを1に位置が設定されている、いかなるビーズの位置は0に設定されていません。だから、整数の無秩序な配列は、以下の2次元配列に変換することができます。

次に、我々は、下の1のすべての要素が二次元配列に落ちたように、ビーズが落下そろばん子のプロセスをシミュレートします:

最後に、一次元の秩序配列に「そろばん」をドロップした後:

感熱紙を  お勧めします 

Windowsの10再び香り、超半分国内のユーザーは、より多くのWindows 7の停止する「にハングアップ」

スタンフォード大学は、中国初の女性大統領は、「人工皮膚は、」障害を持つマシンと接触人々を与えます

博士はスタンフォード大学は中退して、3つの領域で科学技術狂人のMuskerの道路頂点に世界を変えます

我国自主开发的编程语言“木兰”是又一个披着“洋”皮的红芯浏览器吗?

回家的票抢上了吗?聊聊12306为什么时不时要崩一下

☞小网站的容器化(上)

区块链第一,情商上榜,2020找工作需要哪些技能?

你点的每个“在看”,我都认真当成了喜欢

发布了1648 篇原创文章 · 获赞 4万+ · 访问量 1376万+

おすすめ

転載: blog.csdn.net/csdnnews/article/details/104047122