睡眠排序演算法,嘻嘻,本身只是乙個腦洞開啟的排序演算法。排序演算法一般是力求兼顧時間和空間的平衡,而睡眠排序演算法卻像是乙個玩笑,當時間和空間兩者消耗足夠大,才能達到最終精確排序的目的。
實現原理:構造 n 個執行緒,它們和這 n 個數一一對應。初始化後,執行緒們開始睡眠,等到對應的數那麼多個時間單位後各自醒來,然後輸出它對應的數。這樣最小的數對應的執行緒最早醒來,這個數最早被輸出。等所有執行緒都醒來,排序就結束了。
public
class
sleepsort
;//建立指定長度的執行緒陣列
sortthread[
] sortthreads =
newsortthread
[arr.length]
;//指定每個執行緒陣列的值
for(
int i =
0; i < sortthreads.length; i++
)//開啟每個執行緒
for(
int i =
0; i < sortthreads.length; i++)}
}class
sortthread
extends
thread
public
void
run(
)catch
(interruptedexception e)
//輸出該數
system.out.
println
(s);}}
----
----
----
----
----
- 原文:https:
54800064
public
class
sleepsort
; sleepsort.
sort
(nums)
;for
(int n:nums)
system.out.
printf
("%d "
,n);
}public
static
void
sort
(int
nums)
catch
(interruptedexception e)
for(
int i=
0;i) nums[i]
=sleeper.output[i];}
}class
sleeper
extends
thread
public
sleeper
(int sleep_time)
@override
public
void
run(
)catch
(interruptedexception e)
output[idx++]=
this
.sleep_time;
}}
嘻嘻,記錄本篇部落格,只是為了好玩,太演算法的東西我也不會說明,**也是從別人的文章中貼上的。至於演算法效能分析等等,請參考引用:
乙個有趣的排序演算法—睡眠排序 - 冷血之心的部落格 - csdn部落格
今天看到乙個新的排序法 睡排序 真的是腦洞大開。。。 - v2ex
腦洞大開 c 重啟病毒
介紹 看到知乎上的乙個問題,於是有了做乙個簡單病毒的主意,花了一下午的時間寫出來了,給同學發著玩玩,還挺有意思。說一下病毒的症狀 執行exe程式後,電腦會重啟,之後的每次開機,都會在開機後60s後關機。因為不是個惡意病毒,所以在每次開機的時候都會彈出乙個txt檔案告訴他們解決方案。分析 整個病毒分為...
腦洞大開 細胞與程式設計
曾經我寫過關於未來智慧型機器的擔憂的文章,未公開,純屬個人閒暇亂寫,但是有朋友提出,如果要實現所謂的機械人的類人智慧型化,必須打破現有的馮 諾依曼體系才行。但是,結合之前學習的生物學的知識,特別是關於細胞學的知識,我對此的理解加深了一步。細胞學中,細胞核儲存著人類等生物的核心生命密碼,線粒體提供能量...
腦洞大開的思維工具 PMI
思維訓練第一課 pmi 愛德華 德博諾曾說,每個人的頭腦中都有乙個自己建立的資料庫,這就是經驗。當你充分利用這個資料庫時,也就拓展了自己的思維。pmi 思維方法,思維訓練第一課 1 問題與思考 問題分兩種,一種是不帶觀點的問題,比如 太陽在發光發熱,紅旗在飄 一種是不帶觀點的問題 廢除死刑是一件好事...