Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > С++ задача на сортировку


Автор: 111 19.12.2008, 13:45
Всем заранее спасибо,нужна помощь по програмированию,задачка простая.Заключается в том что надо ввести минимум 5 чисел в любом порядке и осортировать любым методом,например  5 2 3 1 4 задала,программа делает всё по порядку 1 2 3 4 5 .Я в этом деле новичёк,запуская свои примеры выдаёт ошибки.Надо ещё дать описание к действиям через // .Потом по этому добру надо сделать блок схему, но может разберусь,поняв принцып работы. Запущено будет на Visual Studio 2005.Надеюсь разделом не ошиблась.Пожалуй это всё мальчики smile 

Автор: 111 19.12.2008, 21:48
неужто никто не придумает ничего? ((

Автор: likehood 19.12.2008, 22:45
самый простой метод сортировки - http://forum.vingrad.ru/faq/topic-200441.html

Автор: mes 19.12.2008, 22:59
вот  пример (как раз писал для другого топика)
Код

#include <iostream>

int mas [] = { 1, 2,4,4,3,-6,-4}; // массив для теста
int size = sizeof(mas)/sizeof(int*); // размер массива
int  * end = mas+size;

void swap (int& x, int& y) { int i=x; x=y; y=i; }  // обмен значений

void sort (int * begin, int * end) // сортировка
{
    for (int *p =begin+1; p<end; ++p)
    for (int *p1 =p; p1>begin; --p1)
    if (*p1 < *(p1-1)) swap (*p1,*(p1-1));
    else break;
}

void print (const char * text, int* begin, int * end) // тестовый вывод
{
    std::cout << text <<*begin;
    for (int *p =begin+1; p<end; ++p)
    std::cout<<", "<<*p;
    std::cout <<". "<<std::endl;
}

int main( void )
{

     print ("before sort : ", mas, end); 
     sort (mas, end); 
     print ("after sort : ", mas, end); 

     std::cout <<std::endl;

     system("pause");
}

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)