Предмет:
ИнформатикаАвтор:
rickyОтвет:
Завдання 1:
void sortArray(int arr[], int size, bool descending = false) {
if (descending) {
for (int i = 0; i < size - 1; i++) {
for (int j = i + 1; j < size; j++) {
if (arr[i] < arr[j]) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
} else {
for (int i = 0; i < size - 1; i++) {
for (int j = i + 1; j < size; j++) {
if (arr[i] > arr[j]) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
}
}
Завдання 2:
void sortArrayHalf(int arr[], int size) {
int mid = size / 2;
// Sort the first half in descending order
for (int i = 1; i < mid; i++) {
int key = arr[i];
int j = i - 1;
while (j >= 0 && arr[j] < key) {
arr[j + 1] = arr[j];
j--;
}
arr[j + 1] = key;
}
// Sort the second half in ascending order
for (int i = mid + 1; i < size; i++) {
int key = arr[i];
int j = i - 1;
while (j >= mid && arr[j] > key) {
arr[j + 1] = arr[j];
j--;
}
arr[j + 1] = key;
}
}
Завдання 3:
void sortBetweenNegatives(int arr[], int size) {
int leftNeg = -1;
int rightNeg = -1;
// Find the leftmost negative element
for (int i = 0; i < size; i++) {
if (arr[i] < 0) {
leftNeg = i;
break;
}
}
// Find the rightmost negative element
for (int i = size - 1; i >= 0; i--) {
if (arr[i] < 0) {
rightNeg = i;
break;
}
}
// Sort the elements between the leftmost and rightmost negative elements
if (leftNeg != -1 && rightNeg != -1 && leftNeg < rightNeg) {
for (int i = leftNeg + 1; i < rightNeg; i++) {
int key = arr[i];
int j = i - 1;
while (j >= leftNeg && arr[j] > key) {
arr[j + 1] = arr[j];
j--;
}
arr[j + 1] = key;
}
}
}
Объяснение:
Автор:
elliottjwsiДобавить свой ответ
Предмет:
Другие предметыАвтор:
caesari7cjОтветов:
Смотреть
Предмет:
Українська моваАвтор:
keatonОтветов:
Смотреть
Предмет:
Другие предметыАвтор:
carrollОтветов:
Смотреть