diff --git a/main.cpp b/main.cpp index 39d17e2..d0b3919 100644 --- a/main.cpp +++ b/main.cpp @@ -140,32 +140,53 @@ void swap(int& a, int& b) { void bubble_sort_descending(int* array, unsigned int size) { for (unsigned int i = 0; i < size - 1; i++) { - //####################################################### - //Implement here - ; - //####################################################### + for (unsigned int j = 0; j < size - 1 - i; j++) + { + if (array[j] < array[j + 1]) + { + + + swap(array[j], array[j+1]); + + + } + } } } void insertion_sort_descending(int* array, unsigned int size) { for (unsigned int i = 1; i < size; i++) { - //####################################################### - //Implement here - ; - //####################################################### + int j = i - 1; + while(1) + { + if(j<0){ + break; + } + if(array[j+1]<=array[j]){ + break; + } + swap(array[j], array[j+1]); + j=j-1; + } } } void selection_sort_descending(int* array, unsigned int size) { for (unsigned int i = 0; i < size - 1; i++) { - //####################################################### - //Implement here - ; - //####################################################### + int max = array[i]; + int max_idx = i; + for (unsigned int j = i + 1; j < size; j++) + { + if(max