#include <iostream>
#include <ctime>
using namespace std;
const int n = 5;
int first, last;
void quicksort(int* mas, int first, int last)
{
int mid, count;
int f = first, l = last;
mid = mas[(f + l) / 2];
do
{
while (mas[f] < mid) f++;
while (mas[l] > mid) l--;
if (f <= l)
{
count = mas[f];
mas[f] = mas[l];
mas[l] = count;
f++;
l--;
}
} while (f < l);
if (first < l) quicksort(mas, first, l);
if (f < last) quicksort(mas, f, last);
}
void main()
{
setlocale(0, "Rus");
int* A = new int[n];
srand(time(NULL));
cout << "Исходный массив: ";
for (int i = 0; i < n; i++)
{
A[i] = rand() % 10;
cout << A[i] << " ";
}
int U;
cout << "\n 1.Сортировка Хоара \n 2.Сортировка выбором" << endl;
cin >> U;
switch (U) {
case'1':
first = 0; last = n - 1;
quicksort(A, first, last);
cout << endl << "Итоговый массив: ";
for (int i = 0; i < n; i++) cout << A[i] << " ";
delete[]A;
case'2':
for (int startIndex = 0; startIndex < n - 1; ++startIndex)
{
int smallestIndex = startIndex;
for (int currentIndex = startIndex + 1; currentIndex < n; ++currentIndex)
{
if (A[currentIndex] < A[smallestIndex])
smallestIndex = currentIndex;
}
swap(A[startIndex], A[smallestIndex]);
}
for (int index = 0; index < n; ++index)
cout << A[index] << ' ';
}
system("pause>>void");
}
При переходе на свитч, выполнение сортировки не происходит. Буду признателен, если подскажите, что я сделал не так. Заранее спасибо.
Вы сравниваете число int
c числовым кодом символа '1'
(49). А еще пропущен break;
. А еще для использования функции rand
необходимо включать заголовочный файл cstdlib
. А еще глобальные переменные с именами, совпадающими с локальными. А во втором случае массив не удаляете. Ну и сам алгоритм выглядит как-то подозрительно, там действительно должены быть перебор по одному элементу и рекурсия?
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Помогите, пожалуйста, решить проблемуНе знаю, как записать и в сети найти не получается
Хотите улучшить этот вопрос? Обновите вопрос так, чтобы он вписывался в тематику Stack Overflow на русском
Мучает вопрос с анимацией(примеры ниже), никак не могу найти в интернете, может неправильно ищуМне никак не понятно каким образом всё это...