⧼exchistory⧽
12 exercise(s) shown, 0 hidden
ABy Admin
May 13'24

Write a function to check if an integer is negative; the declaration should look like bool is_positive(int i);

ABy Admin
May 13'24

Write a function to raise a floating point number to an integer power, so for example to when you use it

float a = raise_to_power(2, 3);    //a gets 8
float b = raise_to_power(9, 2);    //b gets 81
float raise_to_power(float f, int power);    //make this your declaration
ABy Admin
May 13'24

Write a function to calculate if a number is prime. Return 1 if it is prime and 0 if it is not a prime.

ABy Admin
May 13'24

Write a function to determine the number of prime numbers below n.

ABy Admin
May 13'24

Write a function to find the square root by using Newton's method.

ABy Admin
May 13'24

Write functions to evaluate the trigonometric functions.

ABy Admin
May 13'24

Try to write a random number generator.

ABy Admin
May 13'24

Write a function to determine the prime number(s) between 2 and 100.

ABy Admin
May 13'24

Write a C program to generate a random integer array with a given length n , and sort it recursively using the Merge sort algorithm.

-sorting a one element array is easy.

- sorting two one-element arrays, requires the merge operation. The merge operation looks at two sorted arrays as lists, and compares the head of the list , and which ever head is smaller, this element is put on the sorted list and the head of that list is ticked off, so the next element becomes the head of that list. This is done until one of the lists is exhausted, and the other list is then copied onto the end of the sorted list.

- the recursion occurs, because merging two one-element arrays produces one two-element sorted array, which can be merged with another two-element sorted array produced the same way. This produces a sorted 4 element array, and the same applies for another 4 element sorted array.

- so the basic merge sort, is to check the size of list to be sorted, and if it is greater than one, divide the array into two, and call merge sort again on the two halves. After wards, merge the two halves in a temporary space of equal size, and then copy back the final sorted array onto the original array.

ABy Admin
May 13'24

A binary max-heap or min-heap, is an ordered structure where some nodes are guaranteed greater than other nodes, e.g. the parent vs two children. A binary heap can be stored in an array , where ,

- given a position i (the parent) , i*2 is the left child, and i*2+1 is the right child.

- ( C arrays begin at position 0, but 0 * 2 = 0, and 0 *2 + 1= 1, which is incorrect , so start the heap at position 1, or add 1 for parent-to-child calculations, and subtract 1 for child-to-parent calculations ).

  • try to model this using with a pencil and paper, using 10 random unsorted numbers, and inserting each of them into a "heapsort" array of 10 elements.
  • To insert into a heap, end-add and swap-parent if higher, until parent higher.
  • To delete the top of a heap, move end-to-top, and defer-higher-child or sift-down , until no child is higher.
  • try it on a pen and paper the numbers 10, 4, 6 ,3 ,5 , 11.
  • the answer was 11, 5, 10, 3, 4 , 6.


Now try removing each top element of 11, 5, 10, 3, 4, 6 , using end-to-top and sift-down ( or swap-higher-child) to get the numbers in descending order.