CS153/hw6/hw4programs/sp22_tests/bucket_sort.oat
jmug ee01a8f5b2 Change hw6 to an unsolved version.
Signed-off-by: jmug <u.g.a.mariano@gmail.com>
2025-01-24 23:10:01 -08:00

54 lines
1.3 KiB
Text

global arr = new int[]{394, 901, 617, 876, 714, 865, 234, 79, 100, 123};
global arr_size = 10;
int max_in_arr(int[] arr, int size) {
var max = 0;
for (var i = 0; i < 10; i = i + 1;) {
if (arr[i] > max) {
max = arr[i];
}
}
return max;
}
void print_arr(int[] arr, int size) {
print_string("[");
for (var i = 0; i < 10; i = i + 1;) {
var elt_string = string_of_int(arr[i]);
print_string(elt_string);
if (i != size - 1) {
print_string(", ");
}
}
print_string("]\n");
return;
}
void populate_buckets(int[] arr, int size, int[] buckets) {
for (var i = 0; i < size; i = i + 1;) {
buckets[arr[i]] = arr[i];
}
return;
}
void copy_from_buckets(int[] buckets, int size, int[] arr) {
var counter = 0;
for (var i = 0; i < size; i = i + 1;) {
if (buckets[i] != 0) {
arr[counter] = buckets[i];
counter = counter + 1;
}
}
return;
}
int program(int argc, string[] argv) {
var buckets_size = max_in_arr(arr, arr_size) + 1;
var buckets = new int[buckets_size];
populate_buckets(arr, arr_size, buckets);
copy_from_buckets(buckets, buckets_size, arr);
print_arr(arr, arr_size);
return 1;
}