Отправляет email-рассылки с помощью сервиса Sendsay

Уроки по C/C++

  Все выпуски  

Уроки по C/C++


Информационный Канал Subscribe.Ru

Уроки по C/C++. Рассылки сайта progs.biz
Рассылка № 32
 
Начало > C++ > Основы C++ > Урок 37

А. Ламот. Программирование трехмерных игр для Window.
А. Ламот. Программирование трехмерных игр для Window
Заказать на Озоне

Подробнее


Полные версии уроков (с картинками): урок 37.

C/C++
Урок 37. Сортируем элементы списка

Продолжим работу с нашим списком, начатую на 28-м уроке

Для сортировки элементов списка мы воспользуемся методом пузырьков. Алгоритм его приблизительно такой - просматриваем элементы нашего списка соседними парами от начала до конца. Т. е. сначала смотрим пару нулевого и первого элементов, потом первого и второго и т. п. В каждой паре при необходимости меняем элементы - если они стоят не в том порядке. Так доходим до конца списка. Если мы поменяли хотя бы одну пару, то повторяем все с начала - т. е. начинаем смотреть пары от начала и до конца. И так будем делать до тех пор, пока при очередном проходе мы ничего не поменяем - тогда список и окажеться отсортированным.

Приступаем к коду.

В класс CList добавим объявление метода Sort:

class CList
{
public:
    ...
    // Сортировка.
    void Sort();
    ...

Добавим, естественно, и реализацию для этого метода:

void CList::Sort()
{
    bool b; // Меняли ли соседние элементы списка?
    do
    {
        b  = false; // пока ничего не меняли.
        // Смотрим элементы до предпоследнего.
        for (int i = 0; i<GetCount()-1; i++)
        {
            if (GetAt(i)->a > GetAt(i+1)->a)
            {
                Change(GetAt(i));
                b = true;
            }
        }
        
    }while (b);
}

С этим методом все.

Рассылки сайта progs.biz
Visual C++, MFC
C# и .NET
VB.NET
ASP.NET new!
Win API
C/C++
Delphi
Java
HTML, PHP, mySQL, WEB-дизайн
Flash MX
C++ Builder
Ассемблер
SQL Server
DirectX
Обзор книг
Обзор программ
Новости сайта progs.biz


PARKING.RU. Качественный ВИРТУАЛЬНЫЙ ХОСТИНГ на платформе Windows(r): поддержка NET, многофункциональная панель управления, аренда бизнес-приложений, сертифицированные специалисты. Управляемый ВЫДЕЛЕННЫЙ ХОСТИНГ на платформе Windows(r): производительные серверы, профессиональная поддержка, аренда ПО Microsoft(r), безопасность, гарантии. http://www.parking.ru


Копирование любых материалов сайта без разрешения авторов и владельцев сайта запрещено.
© 2002-2004 сайт progs.biz
© 2002-2004 Алексеев Игорь

http://subscribe.ru/
http://subscribe.ru/feedback/
Подписан адрес:
Код этой рассылки: comp.soft.prog.cpplessons
Отписаться

В избранное