日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

微博预计要火一阵的SleepSort之Shell及C实现

發布時間:2024/1/17 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 微博预计要火一阵的SleepSort之Shell及C实现 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

今日在微博看到如此奇妙的代碼。竟然還有新的sort算法,對于我這樣的渣渣必須研究一下,代碼例如以下:

#!/bin.bash function f() {sleep "$1" //sleep 這么多secho "$1" }while [ -n "$1" ] //第一個參數不為空 dof "$1" & //后臺執行,相當于fork一個進程去執行f, 父進程同一時候繼續下去shift //輸入參數左移。也即覆蓋掉第一個參數 donewait//父進程等待子進程都結束了再繼續往下,否則子進程成為孤立進程



SleepSort。一看代碼,看到sleep大致就明確意圖了,利用sleep,以及多線程并發。依照sleep大小排序,并發來print排序


這個算法本質上是并發的算法,運用了sleep函數,同一時候幾個進程并發,并發是指幾個進程同一時間段同一時候運行,一個時刻還是要排個序逐個運行的,而并行是須要硬件支持的,真正的同一時刻多個進程同一時候運行。


于是乎本菜鳥打算C語言搞一搞,由于借助linux的fork函數來模擬 shell里面 &的后臺執行功能。另外上述代碼接口不太好,最好是傳遞數組參數這樣的的,于是我寫個接口比較general的C版
另外這里面要注意就是shell wait等前面子進程所有結束,父進程才繼續。我用C總是輸出第一個數父進程就返回了,差了C的文檔才知道,他是隨意一個child返回父進程就返回了。因此多次wait 用個loop。


代碼(*nix OS only):
#include <iostream> #include <sys/wait.h> using namespace std;void f(int x) {sleep(x);cout<<x<<" "; } void SleepSort(int*a, int n) {int status;pid_t pid;for(int i=0;i<n;i++){pid=fork();if(pid==0)//child process, return 0 pid{f(a[i]);return;}else//father process return pid>0{;}}for(int i=0;i<n;i++)wait(NULL);//each wait one child process, then continue } int main() {int a[]={6,2,5,8,5,4,7,1};SleepSort(a,8); }



依照這個思想。事實上不論什么并行的技術理論都能夠實現sleepsort,比如CUDA,openmp, mpi等等,我這里弄個并發版本號。


另外確實要用最小單位s的sleep函數。略微注意一下就好了~~~ 以下博客說的比較清楚~~~

http://blog.csdn.net/changingivan/article/details/6966510

收到這個啟示,這個算法有個缺陷。假設排序的樹interval非常小,比如1.1 1.11這樣的,也可能有危急。最小sleep差比一次loop時間長是關鍵


今天一個馬來人說非常崇拜中國的gymnastics,我第一反應geometry, 后來才知道體操。。另外一個阿三教了我一點rude english,之前一直問我what's up?這個是非常標準的美式口語.......今天竟然說了I need a chick, 我已開始以為是trick,可是也說不通。他說,假設說一個女生是chick是非常粗魯的,還有barbanic 也是粗魯的意思。


Good night, bitch! Get your life 享受生活,別那么書呆。Working hard,no, ?hardly working.?


總結

以上是生活随笔為你收集整理的微博预计要火一阵的SleepSort之Shell及C实现的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。