diff options
Diffstat (limited to 'examples/21.src')
| -rw-r--r-- | examples/21.src | 78 |
1 files changed, 0 insertions, 78 deletions
diff --git a/examples/21.src b/examples/21.src deleted file mode 100644 index 804b242..0000000 --- a/examples/21.src +++ /dev/null @@ -1,78 +0,0 @@ -extern rand = () => i64; -extern malloc = (i64) => *void; -extern free = (*void) => void; - -import "!stdlib.src"; - -let init_array = (n: i64, arr: *i64) => void { - let i = 0; - while i < n { - (*(arr + cast(*i64, i))) = rand(); - i = i + 1; - }; - return; -}; - -let print_array = (n: i64, arr: *i64) => void { - let i = 0; - while i < n { - printf("%d\n", *(arr + cast(*i64, i))); - i = i + 1; - }; - return; -}; - -let sort_array = (n: i64, arr: *i64) => void { - let i = 0; - let j = 0; - - while i < n { - j = i + 1; - while j < n { - let x = *(arr + cast(*i64, i)); - let y = *(arr + cast(*i64, j)); - - if x > y { - let tmp = *(arr + cast(*i64, i)); - (*(arr + cast(*i64, i))) = *(arr + cast(*i64, j)); - (*(arr + cast(*i64, j))) = tmp; - }; - - j = j + 1; - }; - i = i + 1; - }; - - return; -}; - -let main = () => i64 { - let n = 10; - let arr = cast(*i64, malloc(n * 8)); - init_array(n, arr); - - printf("Pre-sorted:\n"); - print_array(n, arr); - - sort_array(n, arr); - - printf("Sorted:\n"); - print_array(n, arr); - - free(cast(*void, arr)); - - return 0; -}; - -/* - -Expected stdout: - -Pre-sorted: -${UNSORTED_LIST} -Sorted: -${SORTED_LIST} - -Expected return: 0 - -*/ |