Commented InsertionSort

This commit is contained in:
Samuel Oberhofer 2022-05-26 10:14:45 +02:00
parent 9b5f558b37
commit 461b5f5535
1 changed files with 40 additions and 0 deletions

View File

@ -0,0 +1,40 @@
void insertionSortBase(int array[], int array_size, bool asc) {
int i = 0;
while(i<array_size){
int j = i;
while(j > 0 && array[j-1] > array[j]){
int currentValue = array[j];
array[j] = array[j-1];
array[j-1] = currentValue;
j--;
}
i++;
}
}
void insertionSortOptimized(int array[], int array_size, bool asc) {
int i = 0;
while(i<array_size){
int x = array[i];
int j = i-1;
while(j >= 0 && array[j] > x){
array[j+1] = array[j];
j--;
}
array[j+1] = x;
i++;
}
}
void insertionSortRecursive(int array[], int array_size, bool asc) {
if(array_size > 0) {
insertionSortRecursive(array, array_size-1, true);
int x = array[array_size-1];
int j = array_size-2;
while( j >= 0 && array[j] > x){
array[j+1] = array[j];
j--;
}
array[j+1] = x;
}
}