2 / 2 / 1
Регистрация: 16.11.2009
Сообщений: 51
1

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

28.05.2010, 21:39. Показов 4458. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет! Есть код к сортировке бинарными вставками (сортируется одномерный массив), но он не работает

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
/*Бинарными вставками*/
int sort_bin (int* data, int size) 
{
    int i;
    for (i = 0; i < size; i++) {
        int pos = -1;
        int start = 0;
        int end = i - 1;
        int numToInsert = data[i];
        // Находим место вставки с помощью бинарного поиска
        while (start <= end && !(pos != -1)) {
            int middle = (start + end) / 2;
            if (numToInsert > data[middle]) {
                start = middle + 1;
            } else if (numToInsert < data[middle]) {
                end = middle - 1;
            } else {
                pos = middle;
            }
        }
        if(end < 0){
            // определяем позицию в случае если элемент меньше всех отсортированных
            pos = 0;
        } else if(start >= i){
            // определяем позицию в случае если элемент больше всех отсортированных
            pos = i;
        }
        if (pos < i) {
            // сдвигаем элементы вправо на одну позицию
            int j;
            for (j = i; j > pos; j--) {
                data[j] = data[j - 1];
            }
            data[pos] = numToInsert;
        }
    }
    return *data;
}
/*-=End-=*/
помогите пожалуйста обнаружить ошибки

Добавлено через 23 часа 39 минут
в качестве data - массив, size - размер массива
возвращать должен отсортированный массив
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.05.2010, 21:39
Ответы с готовыми решениями:

Си. Сортировка вставками
Отсортировать массив в порядке убывания методом вставок

Сортировка вставками
Как отсортировать элементы стоящие на нечетных местах в порядке возрастания? вот что-то пытался...

Сортировка вставками
Можете подробно обьяснить программу??? void sort (int *mas, int kol){ int i,j,ii,x;...

Сортировка вставками
Можете подробно обьяснить программу??? void sort (int *mas,int kol); int kol; int main(int argc,...

3
2 / 2 / 1
Регистрация: 16.11.2009
Сообщений: 51
08.06.2010, 22:00  [ТС] 2
кто-нибудь такими вопросами занимался?
0
2 / 2 / 1
Регистрация: 16.11.2009
Сообщений: 51
17.06.2010, 09:45  [ТС] 3
может есть полегче код?
0
0 / 0 / 1
Регистрация: 27.12.2010
Сообщений: 20
17.05.2011, 13:10 4
Мне бы тоже помог сейчас этот алгоритм, а я его не знаю(((
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.05.2011, 13:10
Помогаю со студенческими работами здесь

Сортировка вставками
Сортировка вставками: пусть первые k элементов упорядочены по возростанию. Берется (k+1)-ый...

Сортировка вставками
Отсортировать элементы методом вставками, и найти максимальное. Например задается массив чисел и...

Сортировка вставками
Сортировка вставками массивов из 3-х элементов Не до конца сортирует int tmp,pos,b=0; for(int...

Сортировка вставками
Мне нужно написать программу, в которой бы присутствовала сортировка вставками. Желательно в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru