Skip to content
Snippets Groups Projects
Commit 4dc6ea86 authored by dario.genga's avatar dario.genga
Browse files

Add permutation values between small and last

The program can permute the smallest value in the array with the last
one.
parent 9ae7a8d6
Branches
No related tags found
No related merge requests found
...@@ -29,9 +29,10 @@ int main() { ...@@ -29,9 +29,10 @@ int main() {
printf("Array after cyclic permutation :\n"); printf("Array after cyclic permutation :\n");
print_array(array, array_size); print_array(array, array_size);
// Find the lowest value in the array // Permute smallest value with the last value
int lowest_value = find_lowest_value_in_array(array, array_size); permute_lowest_value_with_last_value(array, array_size);
printf("Lowest value : %d\n", lowest_value); printf("Array after swapping the smallest value with the last one\n");
print_array(array, array_size);
// Swap the highest value of the array with the last element of the array // Swap the highest value of the array with the last element of the array
size_t index_highest_value = find_index_highest_value_in_array(array, array_size); size_t index_highest_value = find_index_highest_value_in_array(array, array_size);
......
...@@ -62,17 +62,26 @@ void print_array(int* array, size_t array_size) { ...@@ -62,17 +62,26 @@ void print_array(int* array, size_t array_size) {
printf("]\n"); printf("]\n");
} }
int find_lowest_value_in_array(int* array, size_t array_size) { int find_lowest_value_index_in_array(int* array, size_t array_size) {
int lowest_value; int lowest_value;
size_t lowest_index;
for (size_t i = 0; i < array_size; i++) { for (size_t i = 0; i < array_size; i++) {
if (i == 0) { if (i == 0) {
lowest_value = array[i]; lowest_value = array[i];
lowest_index = i;
} else if (array[i] < lowest_value) { } else if (array[i] < lowest_value) {
lowest_value = array[i]; lowest_value = array[i];
lowest_index = i;
} }
} }
return lowest_value; return lowest_index;
}
void permute_lowest_value_with_last_value(int* array, size_t array_size) {
int lowest_index = (int)find_lowest_value_index_in_array(array, array_size);
int last_index = array_size - 1;
swap(&array[lowest_index], &array[last_index]);
} }
int find_index_highest_value_in_array(int* array, size_t array_size) { int find_index_highest_value_in_array(int* array, size_t array_size) {
......
...@@ -11,10 +11,12 @@ size_t ask_array_size(); ...@@ -11,10 +11,12 @@ size_t ask_array_size();
void fill_array_with_random_values(int* array, size_t array_size); void fill_array_with_random_values(int* array, size_t array_size);
int find_lowest_value_in_array(int* array, size_t array_size); int find_lowest_value_index_in_array(int* array, size_t array_size);
int find_index_highest_value_in_array(int* array, size_t array_size); int find_index_highest_value_in_array(int* array, size_t array_size);
void permute_lowest_value_with_last_value(int* array, size_t array_size);
void shuffle_array(int* array, size_t array_size); void shuffle_array(int* array, size_t array_size);
void perform_cyclic_permutation(int* array, size_t array_size, size_t cycle_number); void perform_cyclic_permutation(int* array, size_t array_size, size_t cycle_number);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment