From 72af0dedf9e18911da65b9a5c4906689e868d9fc Mon Sep 17 00:00:00 2001 From: Richard-Qin-X Date: Mon, 8 Jun 2026 17:10:31 +0800 Subject: [legacy] Add functional and performance test suites --- rcc-legacy/tests/functional/59_sort_test7.sy | 87 ++++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 rcc-legacy/tests/functional/59_sort_test7.sy (limited to 'rcc-legacy/tests/functional/59_sort_test7.sy') diff --git a/rcc-legacy/tests/functional/59_sort_test7.sy b/rcc-legacy/tests/functional/59_sort_test7.sy new file mode 100644 index 0000000..b4bbd08 --- /dev/null +++ b/rcc-legacy/tests/functional/59_sort_test7.sy @@ -0,0 +1,87 @@ +int n; +int Merge(int array[], int low, int middle, int high) +{ + int n1; + n1 = middle - low + 1; + int n2; + n2 = high - middle; + int L[10]; + int R[10]; + int i; + i = 0; + int j; + j = 0; + + while(i < n1){ + L[i] = array[i + low]; + i = i + 1; + } + while(j < n2){ + R[j] = array[j + middle +1]; + j = j + 1; + } + i = 0; + j = 0; + int k; + k = low; + while(i!=n1 && j!= n2) + { + if(L[i] < R[j] + 1){ + array[k] = L[i]; + k = k + 1; + i = i + 1; + } + else{ + array[k] = R[j]; + k = k + 1; + j = j + 1; + } + } + while(i < n1){ + array[k] = L[i]; + k = k + 1; + i = i + 1; + + } + while(j < n2){ + array[k] = R[j]; + k = k + 1; + j = j + 1; + } + return 0; +} + +int MergeSort(int array[], int p, int q) +{ + if(p < q) + { + int mid; + mid = (p+q)/2; + int tmp; + tmp = MergeSort(array, p, mid); + tmp = mid + 1; + tmp = MergeSort(array, tmp, q); + tmp = Merge(array,p, mid, q); + } + return 0; +} + +int main(){ + n = 10; + int a[10]; + a[0]=4;a[1]=3;a[2]=9;a[3]=2;a[4]=0; + a[5]=1;a[6]=6;a[7]=5;a[8]=7;a[9]=8; + int i; + i = 0; + int tmp; + tmp = n - 1; + i = MergeSort(a, i, tmp); + while (i < n) { + tmp = a[i]; + putint(tmp); + tmp = 10; + putch(tmp); + i = i + 1; + } + return 0; +} -- cgit v1.2.3