{"id":1052,"date":"2024-12-17T18:55:56","date_gmt":"2024-12-17T18:55:56","guid":{"rendered":"https:\/\/monkey.ploogie.co.uk\/?page_id=1052"},"modified":"2024-12-17T19:06:51","modified_gmt":"2024-12-17T19:06:51","slug":"a-quick-sort","status":"publish","type":"page","link":"https:\/\/monkey.ploogie.co.uk\/index.php\/a-quick-sort\/","title":{"rendered":"A Quick Sort"},"content":{"rendered":"<pre>\r\n#!\/usr\/bin\/env mwnci\r\nfunction QuickSort(arr) {\r\n    tmp={}\r\n    n=0\r\n    while (n < len(arr)) {\r\n        tmp = set(tmp, type(arr[n]), true)\r\n\tn++\r\n    }\r\n    if (len(keys(tmp)) > 1) {\r\n        println(\"`sort`: Can't sort with mixed-type values\")\r\n\tprintln(string(arr))\r\n\texit(1)\r\n    }\r\n    tmp={}\r\n    newArray = arr\r\n    return qsort(newArray, 0, len(arr)-1);\r\n}\r\n\r\nfunction qsort(arr, start, end) {\r\n    if ((end - start) < 1) {\r\n        return arr;\r\n    }\r\n\r\n    pivot=arr[end]\r\n    splitIndex=start\r\n    i=start\r\n    while (i < end) {\r\n        if (arr[i] < pivot) {\r\n\t    arr=swap(arr, splitIndex, i)\r\n\t    splitIndex++\r\n\t}\r\n\ti++\r\n    }\r\n    arr=set(arr, end, arr[splitIndex])\r\n    arr=set(arr, splitIndex, pivot)\r\n    arr=qsort(arr, start, splitIndex-1)\r\n    arr=qsort(arr, splitIndex+1, end)\r\n    return arr;\r\n }\r\n\r\na=[]\r\nforeach n in 1..100 {\r\na=push(a, random(10))\r\n}\r\n\r\na=QuickSort(a)\r\nprintln(a)\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>#!\/usr\/bin\/env mwnci function QuickSort(arr) { tmp={} n=0 while (n < len(arr)) { tmp = set(tmp, type(arr[n]), true) n++ } if (len(keys(tmp)) > 1) { println(&#8220;`sort`: Can&#8217;t sort with mixed-type values&#8221;) println(string(arr)) exit(1) } tmp={} newArray = arr return qsort(newArray, 0, len(arr)-1); } function qsort(arr, start, end) { if ((end &#8211; start) < 1) { return &hellip; <a href=\"https:\/\/monkey.ploogie.co.uk\/index.php\/a-quick-sort\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;A Quick Sort&#8221;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-1052","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/monkey.ploogie.co.uk\/index.php\/wp-json\/wp\/v2\/pages\/1052","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/monkey.ploogie.co.uk\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/monkey.ploogie.co.uk\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/monkey.ploogie.co.uk\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/monkey.ploogie.co.uk\/index.php\/wp-json\/wp\/v2\/comments?post=1052"}],"version-history":[{"count":3,"href":"https:\/\/monkey.ploogie.co.uk\/index.php\/wp-json\/wp\/v2\/pages\/1052\/revisions"}],"predecessor-version":[{"id":1055,"href":"https:\/\/monkey.ploogie.co.uk\/index.php\/wp-json\/wp\/v2\/pages\/1052\/revisions\/1055"}],"wp:attachment":[{"href":"https:\/\/monkey.ploogie.co.uk\/index.php\/wp-json\/wp\/v2\/media?parent=1052"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}