|
2 / 2 / 0
Регистрация: 03.12.2018
Сообщений: 46
|
|
Алгоритмы сотировки22.04.2019, 20:21. Показов 1373. Ответов 2
Метки нет (Все метки)
Доброго времени суток!
![]() Очень нужна помощь. Если программа, но она не работает. Есть куча мелких ошибок. Некоторые я не знаю как исправить. Очень прошу помощи. #include <iostream> #include <ctime> #include <time.h> #include <cstdlib> using namespace std; void bubbleSort(int* ptrArr, int SizeOfArray);//пузырьковая void PullArray(int* ptrArr, int SizeOfArray);//массив void Insertion (int* ptrArr, int SizeOfArray);//сортировка вставками* void MargeSort (int* ptrArr, int left, int reght);//слияние* void Marge(int* ptrArr, int b, int e, int m); //слияние под массивов* void ShowArray(int* ptrArr, int SizeOfArray); void selectionSort(int* ptrArr, int SizeOfArray); //выбором void quickSort(int *ptrArr, int Left, int Right); // быстрая int main() { setlocale(LC_ALL, "rus"); unsigned int start, finish; int size; cout << "Введите размер массива:"; while (!(cin >> size)) { cin.clear(); while (cin.get() != '\n') { cout << "\tНеверно введённые данные.Введите их повторно."; } } cout << "Тестирование Алгоритмов:" << endl; cout << "________________________" << endl << endl; int* ptrTest = new int[size]; PullArray(ptrTest, size); bubbleSort(ptrTest, size); cout << "Пузырьковая сортировка" << endl; ShowArray(ptrTest, size); PullArray(ptrTest, size); cout << "Сортировка вставками" << endl; Insertion(ptrTest, size); ShowArray(ptrTest, size); cout << "Сортировка слиянием" << endl; MargeSort (ptrTest, left, right); ShowArray(ptrTest, size); cout << "Сортировка слиянием под массивов" << endl; Marge(ptrTest, b, e, m) //слияние под массивов ShowArray(ptrTest, size); cout << "Сортировка выбором" << endl; selectionSort(ptrTest, size); ShowArray(ptrTest, size); cout << "Быстрая сортировка" << endl; quickSort(ptrTest, 0, size - 1); ShowArray(ptrTest, size); cout << "_______________________________________ ___" << endl; cout << endl << "Начало проверки скорости работы алгоритмов" << endl << endl; cin.get(); bool choice = true; while (true) { cout << "Введите размер массива:"; while (!(cin >> size)) { cin.clear(); while (cin.get() != '\n') { cout << "\tНеверно введённые данные.Введите их повторно."; } } int* Arr = new int[size]; PullArray(Arr, size); start = clock(); bubbleSort(Arr, size); finish = clock(); cout << endl << "Время работы пузырьковой сортировки:" << (double)(finish - start) / CLOCKS_PER_SEC << " сек" << endl; PullArray(Arr, size); start = clock(); selectionSort(Arr, size); finish = clock(); cout << endl << "Время работы сортировки выбором:" << (double)(finish - start) / CLOCKS_PER_SEC << " сек" << endl; PullArray(Arr, size); start = clock(); Insertion(ptrTest, size); finish = clock(); cout << endl << "Время работы вставочной сортировки:" << (double)(finish - start) / CLOCKS_PER_SEC << " сек" << endl; PullArray(Arr, size); start = clock(); MargeSort (ptrTest, b, e); finish = clock(); cout << endl << "Время работы сортировки слиянием:" << (double)(finish - start) / CLOCKS_PER_SEC << " сек" << endl; PullArray(Arr, size); start = clock(); quickSort(Arr, 0, size - 1); finish = clock(); cout << endl << "Время работы быстрой сортировки:" << (double)(finish - start) / CLOCKS_PER_SEC << " сек" << endl; delete[] Arr; Arr = 0; cout << "_______________________________________ ________________________________________ _____________" << endl; cout << "Нажмите 0 ,если хотите прервать сеанс. Если хотите продолжить - введите любой другой символ:" << endl; cin >> choice; cout << "_______________________________________ ________________________________________ _____________" << endl; } system("pause"); } void PullArray(int* ptrArr, int SizeOfArray) { srand(time(NULL)); for (int i = 0; i < SizeOfArray; i++) { ptrArr[i] = 1 + rand(); } } void ShowArray(int* ptrArr, int SizeOfArray) { for (int i = 0; i < SizeOfArray; i++) { cout << *(ptrArr + i) << " "; } cout << endl; } void bubbleSort(int* ptrArr, int SizeOfArray) { int tmp = 0; for (int i = 0; i<SizeOfArray; i++) { for (int j = (SizeOfArray - 1); j >= (i + 1); j--) { if (ptrArr[j]<ptrArr[j - 1]) { swap(ptrArr[j], ptrArr[j-1]); } } } } void selectionSort(int* ptrArr, int SizeOfArray)//выбором { int j = 0; int tmp = 0; for (int i = 0; i<SizeOfArray; i++) { j = i; for (int k = i; k<SizeOfArray; k++) { if (ptrArr[j]>ptrArr[k]) { j = k; } } swap(ptrArr[i], ptrArr[j]); } } void Insertion (int* ptrArr, int SizeOfArray)//вставкой { int j = 0; int tmp = 0; for (int i = 0; i<SizeOfArray; i++) { tmp=ptrArr[i]; j=i-1; while ((j>=0)&&(ptrArr[j]>tmp)) { ptrArr[j+1] = ptrArr[j]; j--; } ptrArr[j+1]=tmp; } } void MargeSort (int* ptrArr, int left, int right)//слияние* { int b=left; int e=right; int pivot = ptrArr [(left + right)/2]; if (b>=e) return; int m= (b+e)/2; MargeSort (ptrArr, b, m); MargeSort (ptrArr, m+1, e); MargeSort (ptrArr, b, m, e); } void Marge(int* ptrArr, int b, int e, int m) //слияние под массивов { int j=b; m=(b+e)/2; int k= m +1;//индекс начала второго под массива int count = e-n+1; if (count <=1){ return; } int *tmp = new int [count]; for (int i = 0; i< count; ++i) { if ((j <m ) && (k<=e)) { if (ptrArr[i] < ptrArr[k]){ tmp [i] = ptrArr[j]; j++; } else { tmp[i]=ptrArr[k]; k++; } } } } void quickSort(int *ptrArr, int Left, int Right)//быстрая { int b = Left; int e = Right; int pivot = ptrArr[(Left + Right) / 2]; do { while (ptrArr[b] < pivot) ++b; while (ptrArr[e] > pivot) --e; if (b <= e) { swap(ptrArr[b], ptrArr[e]); ++b; --e; } } while (b <= e); if (e > Left) quickSort(ptrArr, Left, e); if (b < Right) quickSort(ptrArr, b, Right); } Места, где выдает ошибку, выделила.
0
|
|
| 22.04.2019, 20:21 | |
|
Ответы с готовыми решениями:
2
Реализовать алгоритмы построения прямой: простой пошаговый алгоритм и алгоритмы Брезенхема
Алгоритмы сортировки массивов.Реализуйте алгоритмы сортировок данных массивов |
|
2 / 2 / 0
Регистрация: 03.12.2018
Сообщений: 46
|
|
| 26.04.2019, 09:04 [ТС] | |
|
очень нужна помощь!!!!
0
|
|
|
2156 / 1236 / 508
Регистрация: 11.10.2018
Сообщений: 6,237
|
|||||
| 26.04.2019, 09:47 | |||||
Сообщение было отмечено Marina_99 как решение
РешениеДобавлено через 1 минуту Добавлено через 39 секунд Добавлено через 46 секунд С 4 параметрами у Вас функция Marge(). Добавлено через 1 минуту
0
|
|||||
| 26.04.2019, 09:47 | |
|
Помогаю со студенческими работами здесь
3
Алгоритмы LZ* Алгоритмы Алгоритмы Алгоритмы на C++ Алгоритмы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
|
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение.
И на уровне агентов добавится между грибами или бактериями взаимодействий.
До того я пробовал подход через многомерные массивы,. . .
|
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Сочетание глобально распределённой вычислительной мощности и инновационных. . .
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Налог на собак: https:/ / **********/ gallery/ V06K53e
Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf
Пост отсюда. . .
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop?
Ниже её машинный перевод.
После долгих разбирательств я наконец-то вернула себе. . .
|
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод
Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод.
Thinkpad X220 Tablet —. . .
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|