From 7cb86e33877dd24388a7fee76a5487a15291da1a Mon Sep 17 00:00:00 2001 From: Gorzoid Date: Mon, 1 Oct 2018 23:46:02 +0100 Subject: [PATCH 1/6] Added Bogosort --- contents/bogo_sort/code/lua/bogosort.lua | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 contents/bogo_sort/code/lua/bogosort.lua diff --git a/contents/bogo_sort/code/lua/bogosort.lua b/contents/bogo_sort/code/lua/bogosort.lua new file mode 100644 index 000000000..cf1d6918d --- /dev/null +++ b/contents/bogo_sort/code/lua/bogosort.lua @@ -0,0 +1,24 @@ + +local function shuffle(arr) + local size = #tbl + for i = size, 1, -1 do + local rand = math.random(size) + tbl[i], tbl[rand] = tbl[rand], tbl[i] + end + return tbl +end + +local function issorted(arr) + for i = 1,#arr-1 do + if arr[i] > arr[i+1] then + return false + end + end + return true +end + +function bogosort(arr) + while not issorted(arr) do + shuffle(arr) + end +end \ No newline at end of file From 7c7e19ffe279bb05fe453d5f0b303c67d49336e7 Mon Sep 17 00:00:00 2001 From: Gorzoid Date: Mon, 1 Oct 2018 23:49:46 +0100 Subject: [PATCH 2/6] Fixed code Wasn't running --- contents/bogo_sort/code/lua/bogosort.lua | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/contents/bogo_sort/code/lua/bogosort.lua b/contents/bogo_sort/code/lua/bogosort.lua index cf1d6918d..863815e2a 100644 --- a/contents/bogo_sort/code/lua/bogosort.lua +++ b/contents/bogo_sort/code/lua/bogosort.lua @@ -1,11 +1,9 @@ local function shuffle(arr) - local size = #tbl - for i = size, 1, -1 do - local rand = math.random(size) - tbl[i], tbl[rand] = tbl[rand], tbl[i] + for i = 1, #arr do + local rand = math.random(#arr) + arr[i], arr[rand] = arr[rand], arr[i] end - return tbl end local function issorted(arr) From 2621bab5ce10c5ee8b24bb6264575bb3f333349b Mon Sep 17 00:00:00 2001 From: Gorzoid Date: Mon, 1 Oct 2018 23:50:06 +0100 Subject: [PATCH 3/6] Added tests Same as bubble sort. --- contents/bogo_sort/code/lua/bogosort.lua | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/contents/bogo_sort/code/lua/bogosort.lua b/contents/bogo_sort/code/lua/bogosort.lua index 863815e2a..eaec0a429 100644 --- a/contents/bogo_sort/code/lua/bogosort.lua +++ b/contents/bogo_sort/code/lua/bogosort.lua @@ -19,4 +19,11 @@ function bogosort(arr) while not issorted(arr) do shuffle(arr) end -end \ No newline at end of file +end + +local arr = {1, 45, 756, 4569, 56, 3, 8, 5, -10, -4} +print(("Unsorted array: {%s}"):format(table.concat(arr,", "))) + +bogosort(arr) + +print(("Sorted array: {%s}"):format(table.concat(arr,", "))) \ No newline at end of file From 9683001097e82d263fddc855945de0a4eda8ad9b Mon Sep 17 00:00:00 2001 From: Gorzoid Date: Tue, 2 Oct 2018 00:16:56 +0100 Subject: [PATCH 4/6] Adding entry to bogo_sort.md --- contents/bogo_sort/bogo_sort.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/contents/bogo_sort/bogo_sort.md b/contents/bogo_sort/bogo_sort.md index d46241c06..f7bd453d5 100644 --- a/contents/bogo_sort/bogo_sort.md +++ b/contents/bogo_sort/bogo_sort.md @@ -31,6 +31,8 @@ In code, it looks something like this: [import:17-20, lang:"haskell"](code/haskell/bogoSort.hs) {% sample lang="m" %} [import:21-28, lang:"matlab"](code/matlab/bogosort.m) +{% sample lang="lua" %} +[import:1-29, lang="lua"](code/lua/bogosort.lua) {% sample lang="cpp" %} [import:33-38, lang:"c_cpp"](code/c++/bogosort.cpp) {% sample lang="rs" %} From 40272f38aaba9bfb7cf06f3d73c3a011af5fa338 Mon Sep 17 00:00:00 2001 From: Gorzoid Date: Tue, 2 Oct 2018 10:22:02 +0100 Subject: [PATCH 5/6] Addressing changes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit bogo_sort.md corrected, properly implemented Fisher–Yates shuffle --- contents/bogo_sort/bogo_sort.md | 4 +++- contents/bogo_sort/code/lua/bogosort.lua | 7 +++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/contents/bogo_sort/bogo_sort.md b/contents/bogo_sort/bogo_sort.md index f7bd453d5..5c22b2a21 100644 --- a/contents/bogo_sort/bogo_sort.md +++ b/contents/bogo_sort/bogo_sort.md @@ -32,7 +32,7 @@ In code, it looks something like this: {% sample lang="m" %} [import:21-28, lang:"matlab"](code/matlab/bogosort.m) {% sample lang="lua" %} -[import:1-29, lang="lua"](code/lua/bogosort.lua) +[import:1-22, lang="lua"](code/lua/bogosort.lua) {% sample lang="cpp" %} [import:33-38, lang:"c_cpp"](code/c++/bogosort.cpp) {% sample lang="rs" %} @@ -75,6 +75,8 @@ We are done here! [import, lang:"haskell"](code/haskell/bogoSort.hs) {% sample lang="m" %} [import, lang:"matlab"](code/matlab/bogosort.m) +{% sample lang="lua" %} +[import:1-29, lang="lua"](code/lua/bogosort.lua) {% sample lang="cpp" %} [import, lang:"c_cpp"](code/c++/bogosort.cpp) {% sample lang="rs" %} diff --git a/contents/bogo_sort/code/lua/bogosort.lua b/contents/bogo_sort/code/lua/bogosort.lua index eaec0a429..f6c717e7d 100644 --- a/contents/bogo_sort/code/lua/bogosort.lua +++ b/contents/bogo_sort/code/lua/bogosort.lua @@ -1,7 +1,6 @@ - local function shuffle(arr) - for i = 1, #arr do - local rand = math.random(#arr) + for i = 1, #arr-1 do + local rand = math.random(i,#arr) arr[i], arr[rand] = arr[rand], arr[i] end end @@ -26,4 +25,4 @@ print(("Unsorted array: {%s}"):format(table.concat(arr,", "))) bogosort(arr) -print(("Sorted array: {%s}"):format(table.concat(arr,", "))) \ No newline at end of file +print(("Sorted array: {%s}"):format(table.concat(arr,", "))) From 43c6e360dc093f90cfc0a9ff96a3f6bb76dd651d Mon Sep 17 00:00:00 2001 From: Gorzoid Date: Wed, 3 Oct 2018 16:39:20 +0100 Subject: [PATCH 6/6] Remove unnecessary line specification Line numbers not needed when importing entire file --- contents/bogo_sort/bogo_sort.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contents/bogo_sort/bogo_sort.md b/contents/bogo_sort/bogo_sort.md index 5c22b2a21..3bd103e52 100644 --- a/contents/bogo_sort/bogo_sort.md +++ b/contents/bogo_sort/bogo_sort.md @@ -76,7 +76,7 @@ We are done here! {% sample lang="m" %} [import, lang:"matlab"](code/matlab/bogosort.m) {% sample lang="lua" %} -[import:1-29, lang="lua"](code/lua/bogosort.lua) +[import, lang="lua"](code/lua/bogosort.lua) {% sample lang="cpp" %} [import, lang:"c_cpp"](code/c++/bogosort.cpp) {% sample lang="rs" %}