void SCAN(int array[],int m){
int temp;
int now;
int pos;
int i,j,sum=0;
float avg;
for(i=0;i<m;i++){
for(j=i+1;j<m;j++){ //對磁道號進行從小到大排列
if(array[i]>array[j]){ //兩磁道號之間比較
temp=array[i];
array[i]=array[j];
array[j]=temp;
}
}
}
for( i=0;i<m;i++)//輸出排序后的磁道號數組
printf("%d ",array[i]);
printf("\n 請輸入當前的磁道號:");
scanf("%d",&now);
printf("\n SSTF 調度結果: ");
{
pos = 0;
for(i = 0; i < m; i++){ //找到 第一個 大于等于 當前磁道 的 在要操作的磁道序列中 的 磁道
if(now <= array[i]){
pos = i; //pos 記錄下找到的磁道在 在要操作的磁道序列中 的 序數
break;
}
}
for(i = pos; i < m; i++) printf("%d ", array[i]); //從 當前磁道 往序數最大的磁道移動
for(i = pos - 1; i >= 0; i--) printf("%d ", array[i]); //翻轉方向(向序數小的方向移動)向序數最小的磁道移動
sum = array[m - 1] - now + (pos ? array[m - 1] - array[0] : 0);/* ( array[m - 1] - now ) : 從最開始在的磁道向最大的磁道移動的距離
( pos ? array[m - 1] - array[0] + array[pos - 1] : 0 ) : 如果最開始在的磁道比要操作的序數最小的磁道還要小就不用翻轉方向再移動了 */
}
avg=(float)sum/m;
printf("\n 移動的總道數: %d \n",sum);
printf(" 平均尋道長度: %f \n",avg);
}
void CSCAN(int array[],int m){
int temp;
int now;
int pos;
int i,j,sum=0;
float avg;
for(i=0;i<m;i++){
for(j=i+1;j<m;j++){ //對磁道號進行從小到大排列
if(array[i]>array[j]){ //兩磁道號之間比較
temp=array[i];
array[i]=array[j];
array[j]=temp;
}
}
}
for( i=0;i<m;i++)//輸出排序后的磁道號數組
printf("%d ",array[i]);
printf("\n 請輸入當前的磁道號:");
scanf("%d",&now);
printf("\n SSTF 調度結果: ");
{
pos = 0;
for(i = 0; i < m; i++){ //找到 第一個 大于等于 當前磁道 的 在要操作的磁道序列中 的 磁道
if(now <= array[i]){
pos = i; //pos 記錄下找到的磁道在 在要操作的磁道序列中 的 序數
break;
}
}
for(i = pos; i < m; i++) printf("%d ", array[i]); //從 當前磁道 往序數最大的磁道移動
//然后返回磁道另一端(序數最小的磁道) (并不需要什么操作
for(i = 0; i < pos; i++) printf("%d ", array[i]); //從磁道另一端(序數最小的磁道)沿相同方向(向序數大的方向移動)向不大于 最開始在的磁道 的磁道移動
sum = array[m - 1] - now + (pos ? array[m - 1] - array[0] + array[pos - 1] : 0); /* ( array[m - 1] - now ) : 從最開始在的磁道向最大的磁道移動的距離
( pos ? array[m - 1] - array[0] + array[pos - 1] : 0 ) : 如果最開始在的磁道比要操作的序數最小的磁道還要小就不用返回另一端了 */
}
avg=(float)sum/m;
printf("\n 移動的總道數: %d \n",sum);
printf(" 平均尋道長度: %f \n",avg);
}
實驗六的SCAN和C-SCAN算法(xjb寫的憋照抄啊=。=
最后編輯于 :
?著作權歸作者所有,轉載或內容合作請聯系作者
- 文/潘曉璐 我一進店門撞反,熙熙樓的掌柜王于貴愁眉苦臉地迎上來妥色,“玉大人,你說我怎么就攤上這事遏片∴诤Γ” “怎么了?”我有些...
- 文/不壞的土叔 我叫張陵吮便,是天一觀的道長笔呀。 經常有香客問我,道長线衫,這世上最難降的妖魔是什么凿可? 我笑而不...
- 文/花漫 我一把揭開白布粗卜。 她就那樣靜靜地躺著屋确,像睡著了一般。 火紅的嫁衣襯著肌膚如雪续扔。 梳的紋絲不亂的頭發(fā)上攻臀,一...
- 文/蒼蘭香墨 我猛地睜開眼灼捂,長吁一口氣:“原來是場噩夢啊……” “哼离例!你這毒婦竟也來了?” 一聲冷哼從身側響起悉稠,我...
- 正文 年R本政府宣布骇陈,位于F島的核電站,受9級特大地震影響瑰抵,放射性物質發(fā)生泄漏你雌。R本人自食惡果不足惜,卻給世界環(huán)境...
- 文/蒙蒙 一二汛、第九天 我趴在偏房一處隱蔽的房頂上張望婿崭。 院中可真熱鬧,春花似錦肴颊、人聲如沸氓栈。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽授瘦。三九已至,卻和暖如春竟宋,著一層夾襖步出監(jiān)牢的瞬間提完,已是汗流浹背。 一陣腳步聲響...
推薦閱讀更多精彩內容
- 成長記錄-連載(三十六) ——我的第一篇五千字長文,說了什么,你一定想不到 并不是不想每天寫公眾號孩锡,而是之前思考怎...
- tabbar+navigation的架構用的地方很多了酷宵,雖然tabbar有自帶的hideTabbarWhenPus...
- 企業(yè)想要升級,需要做的其實就是轉變目標客戶群躬窜。因為目標客戶在不斷升級浇垦,需求在不斷提高,如果企業(yè)不升級荣挨,你會發(fā)現自己...
- 傳統(tǒng)的經濟學鹃操,或者叫做古典經濟學韭寸,研究的主要是均衡,它假設參與行為的各方都是“老司機”——學術上稱為理性人组民,然后研...