Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.04.2015, 13:59   #1
Sterben
Форумчанин
 
Аватар для Sterben
 
Регистрация: 01.03.2015
Сообщений: 118
По умолчанию Сортировка вставками(Си)

Код:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
void sortInsertion(int& count,int A[],int strok,int &M)
{
    int i,j,sort;
    for (i=1; i < strok; i++){
            count++;//счётчик, подсчитывающий то, сколько раз во время сортировки сравниваются элементы
           sort=A[i];
        for(j=i-1;j>=0&&A[j]>sort;j--)
            //M+=3;//счётчик,подсчитывающий количество перестановки элементов.
          A[j+1]=A[j];
          A[j+1]=sort;
    }
}

int main()
{const int strok=10;
    int sort,i,j,count=0,M=0;
    int A[strok]={2,4,7,5,9,6,3,1,8,10};
    sortInsertion(count,A,strok,M);
for (i=0;i<strok;i++)
printf("%d",A[i]);
printf("\n%d\n%d",M,count);
}
проблема в том что я не могу правильно реализовать счётчики

Последний раз редактировалось Sterben; 25.04.2015 в 14:02.
Sterben вне форума Ответить с цитированием
Старый 25.04.2015, 14:31   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
...
           sort=A[i];
        for(j=i-1;j>=0&&A[j]>sort;j--) {
            count++;//счётчик, подсчитывающий то, сколько раз во время сортировки сравниваются элементы
          A[j+1]=A[j];
}
...
Не?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 25.04.2015, 15:47   #3
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

В Си нету ссылок (счетчики нужно передать по указателям).
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 25.04.2015, 15:50   #4
Sterben
Форумчанин
 
Аватар для Sterben
 
Регистрация: 01.03.2015
Сообщений: 118
По умолчанию

Stilet,а куда правильно будет поставить M+=3; ?
Sterben вне форума Ответить с цитированием
Старый 25.04.2015, 23:28   #5
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Код:
#include <stdio.h>
#include <stdlib.h>

void sortInsertion(int A[], int N, int* comp, int* exc)
{
    int i, j, tmp;
    for (i = 1; i < N; ++i) {
        tmp = A[i];
        for(j = i - 1; j >= 0 && (++*comp, A[j] > tmp); j--) {
            A[j + 1] = A[j];
            A[j] = tmp;
            ++*exc;
        }
    }
}

int main()
{
    int A[] = {2, 4, 7, 5, 9, 6, 3, 1, 8, 10};
    int N = sizeof(A) / sizeof(A[0]), comparisons = 0, exchanges = 0, i;
    sortInsertion(A, N, &comparisons, &exchanges);
    for (i = 0; i < N; ++i)
        printf("%d ", A[i]);
    printf("\ncomparisons: %d\nexchanges: %d", comparisons, exchanges);
    return 0;
}
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 26.04.2015, 00:05   #6
Sterben
Форумчанин
 
Аватар для Sterben
 
Регистрация: 01.03.2015
Сообщений: 118
По умолчанию

BDA,спасибо
Sterben вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировка вставками empty space Паскаль, Turbo Pascal, PascalABC.NET 4 25.03.2013 15:56
сортировка вставками Mahoyn93 Общие вопросы C/C++ 0 20.05.2012 20:24
сортировка вставками Irk-O Помощь студентам 1 16.10.2010 23:11
Сортировка вставками Katyunya Помощь студентам 1 20.04.2010 08:27
Сортировка вставками blind0482 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 02.12.2009 13:15