Modul:Mergesort

Aus KGS-Wiki

Die Dokumentation für dieses Modul kann unter Modul:Mergesort/Doku erstellt werden

local p = {}

function createRandomList()
	local res = {}
	for i = 1,8,1 do
		res[i] = math.random(99)
	end
	return res
end

function p.example()
	math.randomseed( tonumber( mw.getContentLanguage():formatDate( "U" ) ) * 10000 + os.clock() * 10000 )
	local l = createRandomList()
	frame = mw.getCurrentFrame()
	local content = 'graph TD\n'
	content = content .. 'subgraph divide\n'
	content = content .. 'a[' .. table.concat(l,' ',1,8) .. ']\n'
	content = content .. 'a --> b[' .. tableToString(l,' ',1,4) .. '] & c[' .. tableToString(l,' ',5,8) .. ']\n'
	content = content .. 'b --> d[' .. tableToString(l,' ',1,2) .. '] & e[' .. tableToString(l,' ',3,4) .. ']\n'
	content = content .. 'c --> f[' .. tableToString(l,' ',5,6) .. '] & g[' .. tableToString(l,' ',7,8) .. ']\n'
	content = content .. 'd --> h[' .. l[1] .. '] & i[' .. l[2] .. ']\n'
	content = content .. 'e --> j[' .. l[3] .. '] & k[' .. l[4] .. ']\n'
	content = content .. 'f --> l[' .. l[5] .. '] & m[' .. l[6] .. ']\n'
	content = content .. 'g --> n[' .. l[7] .. '] & o[' .. l[8] .. ']\n'
	content = content .. 'end\n'
	content = content .. 'subgraph conquer\n'
	--h --> p["{{#af_join:{{#af_sort:{{#af_list:{{{1|94}}} | {{{2|73}}}}}}}| }}"]
	--i --> p
	--j --> q["{{#af_join:{{#af_sort:{{#af_list:{{{3|58}}} | {{{4|61}}}}}}}| }}"]
	--k --> q
	--l --> r["{{#af_join:{{#af_sort:{{#af_list:{{{5|22}}} | {{{6|20}}}}}}}| }}"]
	--m --> r
	--n --> s["{{#af_join:{{#af_sort:{{#af_list:{{{7|46}}} | {{{8|75}}}}}}}| }}"]
	--o --> s
	--p --> t["{{#af_join:{{#af_sort:{{#af_list:{{{3|58}}} | {{{4|61}}} | {{{2|73}}} | {{{1|94}}}}}}}| }}"]
	--q --> t
	--r --> u["{{#af_join:{{#af_sort:{{#af_list:{{{6|20}}} | {{{5|22}}} | {{{7|46}}} | {{{8|75}}}}}}}| }}"]
	--s --> u
	--t --> v["{{#af_join:{{#af_sort:{{#af_list:{{{6|20}}} | {{{5|22}}} | {{{7|46}}} | {{{3|58}}} | {{{4|61}}} | {{{2|73}}} | {{{8|75}}} | {{{1|94}}}}}}}| }}"]
	--u --> v
	content = content .. 'end'
local graph = frame:extensionTag('mermaid', content, {})
return graph
end

return p