iT邦幫忙

0

請問作業系統的書籍上寫的程式要在那邊撰寫如 排序

  • 分享至 

  • twitterImage

請問作業系統的書籍上寫的程式要在那邊撰寫如 排序
不知有大大高手幫小弟解惑一下 不懂謝謝 請賜教

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
22
海綿寶寶
iT邦大神 1 級 ‧ 2008-11-30 18:07:43
最佳解答

要撰寫「排序」
就選擇一個你熟悉的「程式語言」去寫就可以了
不一定要Java,.NET這種編譯式語言
Perl,PHP這類shell script
甚至.bat
還是assembly組合語言都可以

奇怪,「排序」好像不是「作業系統」的書教的吧?
還是我唸的是舊教材?

George iT邦研究生 1 級 ‧ 2008-12-01 08:57:41 檢舉

很好奇?

.bat 的排序程式要如何撰寫?

哈, 牛皮吹破了 ^_^

硬著頭皮寫了個四個值的排序給大家笑一笑

執行方式:swap 8 9 20 34
先將以下的程式碼存成 swap.bat
@ECHO OFF
SET N1=%1%
SET N2=%2%
SET N3=%3%
SET N4=%4%

ECHO ORIGIN:%n1% %N2% %N3% %N4%

IF %N1% GTR %N2% GOTO SWAPN1N2
:NEXT01
IF %N1% GTR %N3% GOTO SWAPN1N3
:NEXT02
IF %N1% GTR %N4% GOTO SWAPN1N4
:NEXT03
IF %N2% GTR %N3% GOTO SWAPN2N3
:NEXT04
IF %N2% GTR %N4% GOTO SWAPN2N4
:NEXT05
IF %N3% GTR %N4% GOTO SWAPN3N4
:NEXT06

ECHO SORTED:%n1% %N2% %N3% %N4%

GOTO STOP

:SWAPN1N2
SET TEMP=%N1%
SET N1=%N2%
SET N2=%TEMP%
GOTO NEXT01

:SWAPN1N3
SET TEMP=%N1%
SET N1=%N3%
SET N3=%TEMP%
GOTO NEXT02

:SWAPN1N4
SET TEMP=%N1%
SET N1=%N4%
SET N4=%TEMP%
GOTO NEXT03

:SWAPN2N3
SET TEMP=%N2%
SET N2=%N3%
SET N3=%TEMP%
GOTO NEXT04

:SWAPN2N4
SET TEMP=%N2%
SET N2=%N4%
SET N4=%TEMP%
GOTO NEXT05

:SWAPN3N4
SET TEMP=%N3%
SET N3=%N4%
SET N4=%TEMP%
GOTO NEXT06

:STOP

liqunyan iT邦好手 3 級 ‧ 2008-12-01 15:41:56 檢舉

其實,批次檔就用sort就可以排序啦!這樣應該不算作弊啦!
用pipeline,把資料倒入sort就可以排序。
只是這樣不算寫程式就是。

20
liqunyan
iT邦好手 3 級 ‧ 2008-11-30 21:02:09

演算法則或資料結構,會要求你寫「排序」,用各種演算法則練習寫出Sort。
作業系統的作業會要你寫「排程」,Schedule。
差一個字差很多哩!
排序,很多地方都找得到範例,各種語言的版本,各種演算法則的版本。
排程就牽涉到你對OS教科書上,排程演算法則的理解了,SJF、Round Robin……
關鍵在於Context Switch的方法(演算法則),你得理解,才能寫出程式(程式本身是沒多困難)。

14
shen129
iT邦新手 1 級 ‧ 2008-12-01 04:18:29

有點不太能理解你的問題,你是問說

  1. 類似排序那樣的演算法要如何應用在一般程式撰寫上面嗎?
  2. 還是可以在哪個平台/語言開發環境上撰寫排序這個演算法?
  3. OS課本上所教的那些排序概念,我要怎麼去測試和實現?

若是1,除非你真的很有心想自己硬幹出一些很複雜的邏輯,不然把資料排序的功能交給Database來處理吧,SELECT + ORDER BY是你資料排序的好朋友

若是2,排序是演算概念,跟語言層次是不太相關的,任何語言都可以撰寫排序演算法,有資料(或者物件)的地方就有可能會有排序的需求

若是3,OS課本上所提出的排序概念僅是很廣泛的概念,我不想澆熄你對學習的熱情,但還是要跟你說,記下來就好

我要發表回答

立即登入回答