C 最佳適應演算法實現

2021-09-02 18:50:17 字數 1437 閱讀 6468

#include#includeusing namespace std;

#define max_free 10    //空閒區最大個數

#define max_job 10   //已分分割槽最大個數

struct table free_table[max_free], used_table[max_job];

static float size = 0;    //最小切割長度

void init(table free_table, table used_table)

int s;   //初始空閒分割槽個數

printf("請輸入初始空閒分割槽的個數:\n");

scanf_s("%d", &s);

for (int i = 0; i < s; i++)

printf("請輸入最小可分割長度:\n");

scanf_s("%f", &size);

printf("\n\n");

}void sort(table free_table)

}}void bf(table free_table, table used_table)

else }}

if (k == false)

printf("無可用空閒區!\n");

sort(free_table);

printf("\n\n");

}void recycle(table free_table, table used_table)

if ((used_table[i].address + used_table[i].length) == free_table[j].address && free_table[j].flag == "1")

for (int m = j + 1; m < max_free; m++)

} //end of for

}   //end of for

/*沒有空閒區合併情況*/

if (tag == false) }}

k = true;   //標誌已分配分割槽中有該作業

break;  //如果存在,找到並合併完即可,無需再向下迴圈,提高效率

} //end of if

}  //end of for

if (k == false)

sort(free_table);

printf("\n");

}void display_free(table free_table)

}printf("\n\n");

}void display_used(table used_table)

printf("\n\n");

}void chose(table free_table, table used_table)

}}void main()

最佳適應演算法 C語言實現

用c語言實現採用最佳適應演算法的動態分割槽分配過程和 過程。其中,空閒分割槽通過空閒分割槽鏈 表 來管理 在進行記憶體分配時,系統優先使用空閒區低端的空間,要求每次分配和 後顯示出空閒記憶體分割槽鏈的情況。include include include define free 0 define bu...

首次適應演算法 最佳適應演算法和最差適應演算法

首次適應演算法 first fit 從空閒分割槽表的第乙個表目起查詢該錶,把最先能夠滿足要求的空閒區分配給作業,這種方法的目的在於減少查詢時間。最佳適應演算法 best fit 從全部空閒區中找出能滿足作業要求的,且大小最小的空閒分割槽,這種方法能使碎片盡量小。最差適應演算法 worst fit 它...

最佳適應演算法 遺傳學演算法

遺傳演算法 genetic algorithm,ga 是模擬達爾文的遺傳選擇和自然淘汰的生物進化過程的計算模型,是一種通過模擬自然進化過程搜尋最優解的方法。遺傳演算法以一種群體中的所有個體為物件,並利用隨機化技術指導對乙個被編碼的引數空間進行高效搜尋。遺傳演算法基本思想 核心是達爾文優勝劣汰適者生存...