腦洞大開的睡眠排序

2021-08-31 21:41:53 字數 1718 閱讀 1489

睡眠排序演算法,嘻嘻,本身只是乙個腦洞開啟的排序演算法。排序演算法一般是力求兼顧時間和空間的平衡,而睡眠排序演算法卻像是乙個玩笑,當時間和空間兩者消耗足夠大,才能達到最終精確排序的目的。

實現原理:構造 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 問題與思考 問題分兩種,一種是不帶觀點的問題,比如 太陽在發光發熱,紅旗在飄 一種是不帶觀點的問題 廢除死刑是一件好事...