著者|小さな灰色
ソース|プログラマ小さな灰色(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の道路頂点に世界を変えます
☞我国自主开发的编程语言“木兰”是又一个披着“洋”皮的红芯浏览器吗?
☞小网站的容器化(上)
你点的每个“在看”,我都认真当成了喜欢