Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
_Kate_
0 / 0 / 0
Регистрация: 12.09.2012
Сообщений: 92
Записей в блоге: 1
#1

Алгоритм сортировки,ошибка!

02.10.2012, 22:30. Просмотров 367. Ответов 5
Метки нет (Все метки)

У меня алгоритм сортировки вставками но вот только не сортирует почему то
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
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <time.h>
#include <conio.h>
//#define N 1000 
 using namespace std;
void InsertSort(int mass[], int n){
int buf, i, j;
for (i = 1; i < n; i++){
      buf = mass[i];
      j = i - 1;
      while (j >= 0 && mass[j] > buf)
      {
         mass[j+1] = mass[j];
         j--;
      }
      mass[j+1] = buf;
   }}
 
int main( )
{
int mass[100],i;
    srand(time(NULL));
    for(int i=0;i<100;i++)
    {mass[i] = rand()%100;}
    cout<<"\n"<<endl;
    cout<<"\n"<<endl;
    InsertSort(mass,100);
    for(i=0;i<100;i++){
        cout<<"\n"<<mass[i];}
    getch();
    return 0;
 
}

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.10.2012, 22:30
Ответы с готовыми решениями:

Алгоритм сортировки
пацаны ребята помогите, реализовал два алгоритма на C++, алгоритм сортировки...

Алгоритм сортировки
Дан одномерный масив. мне в нем нужно отсортировать по возростанию только те...

Алгоритм сортировки
Здравствуйте, подскажите пожалуйста какой алгоритм можно использовать при...

Алгоритм сортировки
учитель попросил написать сортировку массива по возрастанию в общем виде ...

Алгоритм быстрой сортировки
Написать программу, реализующую алгоритм быстрой сортировки(рекурсивный) для...

5
Thinker
Эксперт С++
4232 / 2206 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
02.10.2012, 22:41 #2
еще как сортирует по возрастанию. все правильно написано, проверил!
0
StanislavUA
44 / 44 / 14
Регистрация: 27.04.2011
Сообщений: 163
02.10.2012, 22:42 #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
template <class Item>
void exch(Item &A, Item &B)
{ 
        Item t = A; A = B; B = t; 
}
template <class Item>
void compexch (Item &A, Item &B)
{ 
        if (B < A) exch(A, B) ;
}
template <class Item>
void insertion_sort(Item a[], int L, int R)
{
        int i;
        for(i = R; i > L; i--) compexch(a[i-1], a[i]);
        for (i = L + 2; i <= R; i++)
        {
                int j = i;
                Item cur = a[j];
                while (a[j - 1] > cur)
                {
                        a[j] = a[j - 1];
                        j--;
                }
                a[j] = cur;
        }
}
реализация сортировки вставками на викиучебнике
0
_Kate_
0 / 0 / 0
Регистрация: 12.09.2012
Сообщений: 92
Записей в блоге: 1
02.10.2012, 22:45  [ТС] #4
емм алгоритм то правильно написан, вот только выводит мне массив от 1 до 100 и все
а сранд не задействует вообще...
0
Thinker
Эксперт С++
4232 / 2206 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
02.10.2012, 22:47 #5
еще как задействован, каждый раз новые элементы (имеются повторения) генерируются, посмотрите внимательно. измените для примера диапазон массива или диапазон случайных чисел
1
_Kate_
0 / 0 / 0
Регистрация: 12.09.2012
Сообщений: 92
Записей в блоге: 1
02.10.2012, 23:37  [ТС] #6
нашла время работы а как можно посчитать кол-во сравнений или обменов???

Добавлено через 40 секунд
вот время работы
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
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <time.h>
#include <conio.h>
 using namespace std;
void InsertSort(int mass[], int n){
int buf, i, j;
for (i = 1; i < n; i++){
      buf = mass[i];
      j = i - 1;
      while (j >= 0 && mass[j] > buf)
      {
         mass[j+1] = mass[j];
         j--;
      }
      mass[j+1] = buf;
   }}
 
int main( )
{
    setlocale(LC_CTYPE,"Russian");
    int mass[100],i;
    cout<<"Рандомизированый массив";
    srand(time(NULL));
    for(int i=0;i<100;i++)
    {mass[i] = rand()%100;
    cout<<"\t"<<mass[i];
    }
    clock_t t0 = clock();
    cout<<endl; 
    cout<<"Массив после сортировки"<<endl;
 
    InsertSort(mass,100);
    for(i=0;i<100;i++){
        cout<<"\t"<<mass[i];}
    clock_t t1 = clock();
    cout<<endl;
    cout << "time: " << (double)(t1 - t0) / CLOCKS_PER_SEC << endl;
    getch();
    return 0;
 
}
Добавлено через 20 минут
увидела следующие для данного алгоритма
формулы С-колво сравнений максимальных ((n-1)*n)\2.
и колво обменов Mсред=(n-1)*n)\4.
C++
1
2
3
4
5
int C_max,M_cep;
    C_max=((100-1)*100)/2;
    M_cep=((100-1)*100)/4;
    cout<<"Кол-во сравнений:"<<C_max<<endl;
    cout<<"Кол-во обменов:"<<M_cep;
то это или нет::??
0
02.10.2012, 23:37
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.10.2012, 23:37

Комбинированый алгоритм сортировки
Нужно написать програму на языке С когда имеется алгоритм ! Задача в слудуещем:...

Не алгоритм быстрой сортировки
Просто как подключить эту функцию Не работаеееет #include&lt;iostream&gt;...

Алгоритм пузырьковой сортировки
#include&lt;iostream.h&gt; #define SIZE 5 void bsort (int iArray, int n); int...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru