Олександра |
02.04.2018 21:57 |
Помогите доделать задание на C++
1. Данная последовательность из 20 целых чисел, заполненная в промежутке [1; 20].
a. Отсортировать первые 10 элементов последовательности по возрастанию, последние 10 - наоборот (используя алгоритм быстрой сортировки).
b. Организовать поиск введенного пользователем числа в получении последовательности с помощью алгоритма бинарного поиска.
Вот что смогла написать
Код:
#include <iostream>
#include <ctime>
using namespace std;
void Set(int array[], int n);
void Print(int array[], int n);
void quickSort(int mas[], int n);
int main()
{
const int s = 20;
srand(time(NULL));
int a[s];
Set(a, s);
Print(a, s);
cout << "\n";
quickSort(a, s);
Print(a, s);
system("pause");
return 0;
}
void Set(int array[], int n)
{
for (int i = 0; i < n; i++)
array[i] = rand() % 20 + 1;
}
void Print(int array[], int n)
{
for (int i = 0; i < n; i++)
{
cout << array[i] << " | ";
}
}
void quickSort(int mas[], int n)
{
int m = mas[n / 2], i = 0, j = n - 1;
do
{
while (mas[i] < m)
i++;
while (mas[j] > m)
j--;
if (i <= j)
{
int temp = mas[i];
mas[i] = mas[j];
mas[j] = temp;
i++;
j--;
}
} while (i <= j);
if (i < n)
quickSort(mas + i, n - i);
if (j > 0)
quickSort(mas, j);
}
|