#include "sylib.h" // Really long code; int n; int bubblesort(int arr[]) { int i; int j; i =0; while(i < n-1){ // Last i elements are already in place j = 0; while(j < n-i-1){ if (arr[j] > arr[j+1]) { // swap(&arr[j], &arr[j+1]); int tmp; tmp = arr[j+1]; arr[j+1] = arr[j]; arr[j] = tmp; } j = j + 1; } i = i + 1; } return 0; } int insertsort(int a[]) { int i; i = 1; while(i-1&&temp k - 1) { j = j - 1; } if(i < j) { arr[i] = arr[j]; i = i + 1; } while(i < j && arr[i] < k) { i = i + 1; } if(i < j) { arr[j] = arr[i]; j = j - 1; } } arr[i] = k; int tmp; tmp = i - 1; tmp = QuickSort(arr, low, tmp); tmp = i + 1; tmp = QuickSort(arr, tmp, high); } return 0; } int getMid(int arr[]) { int mid; if (n % 2 == 0) { mid = n / 2; return (arr[mid] + arr[mid - 1]) / 2; } else { mid = n / 2; return arr[mid]; } } int getMost(int arr[]) { int count[1000]; int i; i = 0; while (i < 1000) { count[i] = 0; i = i + 1; } i = 0; int max; int number; max = 0; while (i < n) { int num; num = arr[i]; count[num] = count[num] + 1; if (count[num] > max) { max = count[num]; number = num; } i = i + 1; } return number; } int revert(int arr[]) { int temp; int i; int j; i = 0; j = 0; while (i < j) { temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; i = i + 1; j = j - 1; } return 0; } int arrCopy(int src[], int target[]) { int i; i = 0; while (i < n) { target[i] = src[i]; i = i + 1; } return 0; } int calSum(int arr[], int stride) { int sum; sum = 0; int i; i = 0; while (i < n) { sum = sum + arr[i]; if (i % stride != stride - 1) { arr[i] = 0; } else { arr[i] = sum; sum = 0; } i = i + 1; } return 0; } int avgPooling(int arr[], int stride) { int sum; int i; i = 0; sum = 0; int lastnum; while (i < n) { if (i < stride - 1) { sum = sum + arr[i]; } else if (i == stride - 1) { lastnum = arr[0]; arr[0] = sum / stride; } else { sum = sum + arr[i] - lastnum; lastnum = arr[i - stride + 1]; arr[i - stride + 1] = sum / stride; } i = i + 1; } i = n - stride + 1; while (i < n) { arr[i] = 0; i = i + 1; } return 0; } int main() { n = 32; int arr[32]; int result[32]; arr[0] = 7; arr[1] = 23; arr[2] = 89; arr[3] = 26; arr[4] = 282; arr[5] = 254; arr[6] = 27; arr[7] = 5; arr[8] = 83; arr[9] = 273; arr[10] = 574; arr[11] = 905; arr[12] = 354; arr[13] = 657; arr[14] = 935; arr[15] = 264; arr[16] = 639; arr[17] = 459; arr[18] = 29; arr[19] = 68; arr[20] = 929; arr[21] = 756; arr[22] = 452; arr[23] = 279; arr[24] = 58; arr[25] = 87; arr[26] = 96; arr[27] = 36; arr[28] = 39; arr[29] = 28; arr[30] = 1; arr[31] = 290; int t; t = arrCopy(arr, result); t = revert(result); int i; i = 0; while (i < 32) { t = result[i]; putint(t); i = i + 1; } t = bubblesort(result); i = 0; while (i < 32) { t = result[i]; putint(t); i = i + 1; } t = getMid(result); putint(t); t = getMost(result); putint(t); t = arrCopy(arr, result); t = bubblesort(result); i = 0; while (i < 32) { t = result[i]; putint(t); i = i + 1; } t = arrCopy(arr, result); t = insertsort(result); i = 0; while (i < 32) { t = result[i]; putint(t); i = i + 1; } t = arrCopy(arr, result); i = 0; t = 31; t = QuickSort(result, i, t); while (i < 32) { t = result[i]; putint(t); i = i + 1; } t = arrCopy(arr, result); t = calSum(result, 4); i = 0; while (i < 32) { t = result[i]; putint(t); i = i + 1; } t = arrCopy(arr, result); t = avgPooling(result, 3); i = 0; while (i < 32) { t = result[i]; putint(t); i = i + 1; } return 0; }