// main.swift
// 成組鏈結法----swift
//// created by wejudging on 2018/12/11.
//import foundation
//盤塊的大小
let block_size:int = 4
//盤塊分組大小
let group_size:int = 3
//盤塊數
let blocknum:int = 7
struct block
var m:block=block.init(base: unsafemutablepointer.allocate(capacity: block_size*8), top: unsafemutablepointer.allocate(capacity: block_size*8))
//定義記憶體盤塊的堆疊
var memoryblock:block = block.init(base: unsafemutablepointer.allocate(capacity: block_size*8), top: unsafemutablepointer.allocate(capacity: block_size*8))
//定義全域性的系統盤塊陣列
var diskblock:[block] = [block].init(repeating: m, count: blocknum)
//盤塊分組的數量,隨著分配和**而可能發生動態變化
var groupnumber:int = 0
//分配和**的演算法共享copy()函式
var copypattern:bool = true
//系統現有的空閒盤塊數量(計數)
var spareblocknumber:int = 0
//為盤塊(包括記憶體盤塊)分配空間,並進行部分初始化工作
func initblock()
memoryblock.base = unsafemutablepointer.allocate(capacity: block_size*8)
memoryblock.top = memoryblock.base!+1
memoryblock.base?.pointee = 0
}//初始化系統磁碟的盤塊的成組鏈結情況,這裡為了簡單直觀起見,先按盤塊號由小到大的順序進行連線
func initialallocation()
else
else}}
}groupnumber += 1}}
func show() {
var firstblockid = 0 , groupid = 0 , isfirstgroup:bool = true
for _ in 0..
前往github專案位址 Swift4實現 混合索引組織 演算法
main.swift 混合索引組織 created by wejudging on 2018 12 10.import foundation 定義盤塊的大小,單位為b let block size int 16 定義乙個索引塊中可以存放多少盤塊 let max number in block int...
swift4 學習筆記 二
用函式來定義乙個功能 定義乙個函式需要在函式名後面用小括號 來新增引數,用 來區分引數型別,名稱和返回值的型別 func greet name string,day string string let greetstring greet name snow day monday print gree...
Swift 4 流程控制
if語句 判斷條件不需要小括號,條件執行體必須要放在花括號中 var int6 int 6 if int6 0 print int6 else print 666666666 switch語句 switch中不需要強制寫break語句,但是在每個case裡必須有一條語句 fallthrough可以在...