Показать сообщение отдельно
Старый 02.04.2018, 21:57   #1 (permalink)
Олександра
Новичок
 
Регистрация: 02.04.2018
Сообщений: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
Exclamation Помогите доделать задание на 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);
}
Олександра вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070