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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Дано действительное а Найти такое наименьшее n, что http://www.cyberforum.ru/cpp-beginners/thread631501.html
1+ 1/2+...1/n a
C++ АнтиЕвклид! Добрый день, из спортивного интереса пытаюсь найти число для которого алгоритм Евклида, выполниться хотя бы 6 раз! На работе включил перебором, но думаю это на долго. Может кто то элегантное... http://www.cyberforum.ru/cpp-beginners/thread631496.html
C++ Сложение двоичных чисел, представленных в bitset
Здравствуйте! Мне необходимо узнать, как можно реализовать сложение двоичных чисел, представленных в виде bitset (хотя бы инкремент). Помогите, пожалуйста.
Выход за предел массива C++
Здравствуйте, меня заинтересовала одна особенность массивов, а именно то что они не проверяются на количество элементов, из этого исходит то что с их помошью мы можем изменить/инициализировать...
C++ Union с явными указателями или void*- что выбрать? http://www.cyberforum.ru/cpp-beginners/thread631465.html
В программе предполагается использование огромного количества указателей типа void*, по которым будут хранится объекты типов А и Х. Т.о. при обращении будет использоваться явное приведение типа...
C++ Eclipse C++ библиотеки Компилятору не нравится объявление библиотеки #include <iostream> Можно ли как то это исправить? компилятор >> eclipse-cpp-helios подробнее

Показать сообщение отдельно
Simply me
235 / 31 / 2
Регистрация: 05.05.2012
Сообщений: 309
Завершенные тесты: 1

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

01.08.2012, 08:36. Просмотров 480. Ответов 6
Метки (Все метки)

Здравствуйте. Посмотрите пожалуйста, в чем ошибка!! В С++ Билдере у меня работала такая функция для сортировки:
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
int* Insert (int* a,int N)
{
int x,j;
for (int i=1; i<N; i++)
{
x=a[i];
j=i-1;
while ((x<a[j]) && (j>=0))
{
a[j+1]=a[j];
j=j-1;
}
a[j+1]=x;
}
return (a);
}
 
int ShellSort(int* list, int N)
{
int passes=log(N)/log(2);
while (passes>=1)
{
int increment =2^passes-1;
for (int start=1; start<=increment; start++)
{
Insert(list, N);
}
passes=passes-1;
}
return 1;
}
В Visual Studio это не работало из-за неправильного типа аргумента функции log, поэтому я исправила вот так:
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
float* Insert (float* a, int N)
{
int x,j;
for (int i=1;i<N; i++)
{
x=a[i];
j=i-1;
while ((x<a[j]) && (j>=0))
{
a[j+1]=a[j];
j=j-1;
}
a[j+1]=x;
}
return (a);
}
int ShellCPU (float* list, int N)
{
float x=log ((float) (N));
int passes=x/log(2.0);
while (passes>=1)
{
int increment =2^passes-1;
for (int start=1; start<= increment; start++)
{
Insert (list,N);
}
passes=passes-1;
}
return 1;
}
Теперь эта функция зануляет все элементы массива. Как это исправить?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru