Выполните сортировку массивов ТРЕМЯ СПОСОБАМИ: методом пузырька, прямого поиска и быстрой сортировкой. нужно очень срочно!
#include
#include
using namespace std;
int main() {
uniform_int_distribution uid(1U, 8U);
mt19937 gen{ random_device()() };
auto lettrs = " ABCDEFGH";
auto digits = " 12345678";
char chess[100U] = { 0 };
char rook[100U] = { 0 };
for (auto i = 0U; i < size(chess); ++i) {
chess[i] = i & 1U? digits[uid(gen)] : lettrs[uid(gen)];
}
for (auto x : chess) cout.put(x);
puts("");
auto n = 0U;
for (auto i = 0U, j = 0U; i < size(chess); i += 4U) {
if (chess[i] == chess[i + 2U] && chess[i + 1U] != chess[i + 3U]
|| chess[i] != chess[i + 2U] && chess[i + 1U] == chess[i + 3U]) {
auto e = j + 4U;
auto k = i;
do rook[j] = chess[k++]; while (++j < e);
n += 4U;
}
}
for (auto i = 0U, m = 1U; i < n; ++i, ++m) {
cout.put(rook[i]);
if (0U == m % 4U) puts("");
}
system("pause > nul");
}
C/C++
Выполните сортировку массивов ТРЕМЯ СПОСОБАМИ: методом пузырька, прямого поиска и быстрой сортировкой. С++
#include <iostream>
#include <random>
#include <chrono>
using namespace std;
void bubble_sort(char* box, int n) {
auto first = box;
auto last = box + n;
while (first < --last) {
for (auto begin = first; begin < last; ++begin) {
if (*(begin + 1) < *begin) {
swap(*begin, *(begin + 1));
}
}
}
}
void selection_sort(char* box, int n) {
for (int i = 0; i < n - 1; ++i) {
int m = i;
for (int j = i + 1; j < n; j++) {
if (box[j] < box[m]) {
m = j;
}
}
swap(box[i], box[m]);
}
}
void quick_sort(char* box, int first, int last) {
if (first < last) {
char left = first, right = last, middle = box[(left + right) >> 1];
do {
while (box[left] < middle) left++;
while (box[right] > middle) right--;
if (left <= right) {
swap(box[left], box[right]);
left++;
right--;
}
} while (left <= right);
quick_sort(box, first, right);
quick_sort(box, left, last);
}
}
int main() {
uniform_int_distribution uid(1U, 8U);
mt19937 gen{ random_device()() };
auto show = [](char x) { cout.put(x); };
auto seed = static_cast<unsigned>(chrono::system_clock::now().time_since_epoch().count());
auto lettrs = " ABCDEFGH";
auto digits = " 12345678";
char chess[100U] = { 0 };
char rook[100U] = { 0 };
for (auto i = 0U; i < size(chess); ++i) {
chess[i] = i & 1U? digits[uid(gen)] : lettrs[uid(gen)];
}
for_each(begin(chess), end(chess), show);
puts("\n");
auto n = 0U;
for (auto i = 0U, j = 0U; i < size(chess); i += 4U) {
if (chess[i] == chess[i + 2U] && chess[i + 1U] != chess[i + 3U]
|| chess[i] != chess[i + 2U] && chess[i + 1U] == chess[i + 3U]) {
auto e = j + 4U;
auto k = i;
do rook[j] = chess[k++]; while (++j < e);
n += 4U;
}
}
for (auto i = 0U, m = 1U; i < n; ++i, ++m) {
cout.put(rook[i]);
if (0U == m % 4U) puts("");
}
puts("");
system("chcp 1251 > nul");
puts("Сортировака пузырьком: \n");
for_each(begin(chess), end(chess), show);
puts("");
bubble_sort(chess, size(chess));
for_each(begin(chess), end(chess), show);
puts("\n\nСортировака выбором: \n");
shuffle(begin(chess), end(chess), default_random_engine(seed));
for_each(begin(chess), end(chess), show);
puts("");
selection_sort(chess, size(chess));
for_each(begin(chess), end(chess), show);
puts("\n\nБыстрая сортировка: \n");
shuffle(begin(chess), end(chess), default_random_engine(seed));
for_each(begin(chess), end(chess), show);
puts("");
quick_sort(chess, 0, size(chess) - 1);
for_each(begin(chess), end(chess), show);
puts("");
system("pause > nul");
}
#include <random>
#include <chrono>
using namespace std;
void bubble_sort(char* box, int n) {
auto first = box;
auto last = box + n;
while (first < --last) {
for (auto begin = first; begin < last; ++begin) {
if (*(begin + 1) < *begin) {
swap(*begin, *(begin + 1));
}
}
}
}
void selection_sort(char* box, int n) {
for (int i = 0; i < n - 1; ++i) {
int m = i;
for (int j = i + 1; j < n; j++) {
if (box[j] < box[m]) {
m = j;
}
}
swap(box[i], box[m]);
}
}
void quick_sort(char* box, int first, int last) {
if (first < last) {
char left = first, right = last, middle = box[(left + right) >> 1];
do {
while (box[left] < middle) left++;
while (box[right] > middle) right--;
if (left <= right) {
swap(box[left], box[right]);
left++;
right--;
}
} while (left <= right);
quick_sort(box, first, right);
quick_sort(box, left, last);
}
}
int main() {
uniform_int_distribution uid(1U, 8U);
mt19937 gen{ random_device()() };
auto show = [](char x) { cout.put(x); };
auto seed = static_cast<unsigned>(chrono::system_clock::now().time_since_epoch().count());
auto lettrs = " ABCDEFGH";
auto digits = " 12345678";
char chess[100U] = { 0 };
char rook[100U] = { 0 };
for (auto i = 0U; i < size(chess); ++i) {
chess[i] = i & 1U? digits[uid(gen)] : lettrs[uid(gen)];
}
for_each(begin(chess), end(chess), show);
puts("\n");
auto n = 0U;
for (auto i = 0U, j = 0U; i < size(chess); i += 4U) {
if (chess[i] == chess[i + 2U] && chess[i + 1U] != chess[i + 3U]
|| chess[i] != chess[i + 2U] && chess[i + 1U] == chess[i + 3U]) {
auto e = j + 4U;
auto k = i;
do rook[j] = chess[k++]; while (++j < e);
n += 4U;
}
}
for (auto i = 0U, m = 1U; i < n; ++i, ++m) {
cout.put(rook[i]);
if (0U == m % 4U) puts("");
}
puts("");
system("chcp 1251 > nul");
puts("Сортировака пузырьком: \n");
for_each(begin(chess), end(chess), show);
puts("");
bubble_sort(chess, size(chess));
for_each(begin(chess), end(chess), show);
puts("\n\nСортировака выбором: \n");
shuffle(begin(chess), end(chess), default_random_engine(seed));
for_each(begin(chess), end(chess), show);
puts("");
selection_sort(chess, size(chess));
for_each(begin(chess), end(chess), show);
puts("\n\nБыстрая сортировка: \n");
shuffle(begin(chess), end(chess), default_random_engine(seed));
for_each(begin(chess), end(chess), show);
puts("");
quick_sort(chess, 0, size(chess) - 1);
for_each(begin(chess), end(chess), show);
puts("");
system("pause > nul");
}
Дамир Макишев
Спасибо большое
Yuri Kogai
puts это же сишная функция |:
Похожие вопросы
- Выполните сортировку массивов ТРЕМЯ СПОСОБАМИ: методом пузырька, прямого поиска и быстрой сортировкой. С++
- Проблемы с сортировкой массива методом пузырька.
- Помогите пожалуйста решить эту задачу методом пузырька!!!
- Сортировка элементов массива методом Шелла
- Написать программу, которая сравнивает число перестановок элементов при использовании сортировки «пузырьком» (усовершенс
- Сортировка массивов на С++
- Язык Си. Сортировка и поиск элементв массива
- Сравнение скорости сортировки выбором и сортировки слиянием (SelectionSort vs MergeSort)
- КОНТРОЛЬНЫЕ ЗАДАНИЯ ПО СОРТИРОВКЕ МАССИВОВ
- С++ Сортировка массива