From 4022e5c95210631e4aceb08eaf9d9071aa5aefc4 Mon Sep 17 00:00:00 2001 From: Richard Qin Date: Tue, 15 Sep 2026 08:16:43 +0800 Subject: Set up a git repo --- tests/upload/quick_sort.sy | 75 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100755 tests/upload/quick_sort.sy (limited to 'tests/upload/quick_sort.sy') diff --git a/tests/upload/quick_sort.sy b/tests/upload/quick_sort.sy new file mode 100755 index 0000000..c373d95 --- /dev/null +++ b/tests/upload/quick_sort.sy @@ -0,0 +1,75 @@ +int arr[100]; + +int partition(int l, int r) +{ + int i; + int j; + int tmp; + i = l + 1; + j = l; + + while (i <= r) + { + if (arr[i] > arr[l]) + { + i = i + 1; + } + else + { + tmp = arr[j + 1]; + arr[j + 1] = arr[i]; + arr[i] = tmp; + i = i + 1; + j = j + 1; + } + } + tmp = arr[j]; + arr[j] = arr[l]; + arr[l] = tmp; + return j; +} + +void _quickSort(int l, int r) +{ + int key; + if (l >= r) + { + return; + } + key = partition( l, r); + _quickSort( l, key - 1); + _quickSort( key + 1, r); +} + +void quickSort(int n) +{ + _quickSort(0, n - 1); + return; +} + +void printArray(int n) +{ + int i = 0; + while (i < n) + { + putint(arr[i]); + putch(32); + // printf("%d ", arr[i]); + i = i + 1; + } +} + +int main() +{ + int n; + int i = 0; + n = getint(); + while (i < n) + { + arr[i] = getint(); + i = i + 1; + } + quickSort(n); + printArray(n); + return 0; +} \ No newline at end of file -- cgit v1.2.3