Форум программистов, компьютерный форум CyberForum.ru

Сортировка бинарными вставками - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Работа стандартного входного потока http://www.cyberforum.ru/cpp-beginners/thread549066.html
Здравствуйте. Допустим есть код: int number1, number2; std::cin >> number1 >> number2; Мы вводим, например, 1 2 и переменным number1 и number2 присваиваются значения "1" и "2" соответственно. А если мы введём
C++ Из данных двух массивов образовать третий массив Из данных двух массивов образуется третий массив: сначала элементы первого массива, в конце элементы второго массива; помогите пожалуйста! http://www.cyberforum.ru/cpp-beginners/thread549062.html
C++ вводом строк из файла
Привет, уважаемые программисты! У меня проблема возникла вот в чем: в файле есть несколько строк текста. мне необходимо, чтобы после ввода определенного количества символов и их обработки программа продолжала считывать данные не после места остановки, а уже со следующей строки. Я пробовал сделать так: ifstream input("/media/wind/forlabs/2_sem/l4/input.txt"); ... while(1) { if(i...
C++ Удалить введённую подстроку из строки, без string.h
Задача состоит в том, чтобы удалить подстроку из строки, обе из которых вводятся с клавиатуры. Не разрешается использовать <string.h>. В C++, откровенно говоря, не понимаю ровным счётом ничего, надеюсь на вашу помощь. Заранее спасибо :).
C++ Потоки на С++. Помогите. http://www.cyberforum.ru/cpp-beginners/thread549033.html
Здравствуйте. Допустим есть файл matrix. В нем целочисленная матрица неопределенного размера и с разным количеством пробелов между элементами. Так вот вопрос: как сделать так, чтобы поток считывал по одной строке? Допустим если сделать так: for(i=0;i<20;i++) marrix >> arr; то массив arr без разбора заполниться первыми встретившимися 20 элементами, но как сделать чтобы поток считывал строки в...
C++ Как сохранить картинку из ресурсов на жёсткий диск? Есть в ресурсах картинка IDB_BITMAP1. Как её извлечь на жёсткий диск? подробнее

Показать сообщение отдельно
OasisKharkov
1 / 1 / 0
Регистрация: 28.07.2012
Сообщений: 35
06.06.2013, 13:28     Сортировка бинарными вставками
Делал лабу в институте, вот что получилось:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#include <iostream>
#include <ctime>
using namespace std;
 
void input_array(short* A, unsigned short n);
void output_array(short* A, unsigned short n);
void sort_array(short* A, unsigned short n);
 
void main()
{
    unsigned short n;
    cout << "Enter the number of elements: ";
    cin >> n;
    short* A = new short[n];
    input_array(A,n);
    output_array(A,n);
    sort_array(A,n);
    output_array(A,n);
}
 
void input_array(short* A, unsigned short n)
{
    srand((unsigned)time(NULL));
    for (unsigned short i = 0; i < n; i++)
        A[i] = rand()%200 - 100;
}
 
void output_array(short* A, unsigned short n)
{
    for (unsigned short i = 0; i < n; i++)
        cout << A[i] << " ";
    cout << "\n";
}
 
void sort_array(short* A, unsigned short n)
{
    short x;
    short left;
    short right;
    short sred;
    for (short i = 1;  i < n; i++) 
        if (A[i-1] > A[i]){
            x = A[i];
            left = 0;  
            right = i-1;  
            do {
                sred = (left + right)/2;    
                if  (A[sred] < x ) left = sred + 1;  
                else  right = sred - 1;      
            } while (left <= right);
            for (short j = i-1; j>=left; j--)
                A[j+1] = A[j];  
            A[left] = x;
      }
}
Сам алгоритм и объяснения нашел здесь: http://learnprogramm.ucoz.ru/index/b...vstavkami/0-71
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru