請問作業系統的書籍上寫的程式要在那邊撰寫如 排序
不知有大大高手幫小弟解惑一下 不懂謝謝 請賜教
要撰寫「排序」
就選擇一個你熟悉的「程式語言」去寫就可以了
不一定要Java,.NET這種編譯式語言
Perl,PHP這類shell script
甚至.bat
還是assembly組合語言都可以
奇怪,「排序」好像不是「作業系統」的書教的吧?
還是我唸的是舊教材?
很好奇?
.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
其實,批次檔就用sort就可以排序啦!這樣應該不算作弊啦!
用pipeline,把資料倒入sort就可以排序。
只是這樣不算寫程式就是。
演算法則或資料結構,會要求你寫「排序」,用各種演算法則練習寫出Sort。
作業系統的作業會要你寫「排程」,Schedule。
差一個字差很多哩!
排序,很多地方都找得到範例,各種語言的版本,各種演算法則的版本。
排程就牽涉到你對OS教科書上,排程演算法則的理解了,SJF、Round Robin……
關鍵在於Context Switch的方法(演算法則),你得理解,才能寫出程式(程式本身是沒多困難)。
有點不太能理解你的問題,你是問說
若是1,除非你真的很有心想自己硬幹出一些很複雜的邏輯,不然把資料排序的功能交給Database來處理吧,SELECT + ORDER BY是你資料排序的好朋友
若是2,排序是演算概念,跟語言層次是不太相關的,任何語言都可以撰寫排序演算法,有資料(或者物件)的地方就有可能會有排序的需求
若是3,OS課本上所提出的排序概念僅是很廣泛的概念,我不想澆熄你對學習的熱情,但還是要跟你說,記下來就好