Ребят, подскажите пожалуйста,что это за вид сортировки, ну там пузырьком, быстрая и тому подобное.
Первая функция сортировки. код на с++
PHP код:
void Filevmestimost(stad **first, stad **close) //функция сортировки по вместимости стадиона
{
stad *tmpExternal = *first; //внешнй указатель-который будет параметром первого цикла
stad *tmpExternalSave;
stad *tmpInterior; //внутренний указатель-парамер вложенного цикла
while (tmpExternal->next)
{
tmpExternalSave = tmpExternal->next; //сохраняем следующий внешний указатель
tmpInterior = tmpExternal->next; //внутренний указатель т.е. с какого параметра начинается вложенный цикл
while (tmpInterior)
{
if (tmpExternal->vmestimost < tmpInterior->vmestimost)//сравнение поля вместимость
{
if(tmpExternal->pred == 0){ //если взятая структура первая в списке
*first = tmpExternal->next;
}
else tmpExternal->pred->next = tmpExternal->next;
if(tmpInterior->next == 0){ //если структура,после которой вставляется взятая структура,последняя в списке
*close = tmpExternal;
}
else
tmpInterior->next->pred = tmpExternal;
tmpExternal->next->pred = tmpExternal->pred;
tmpExternal->next = tmpInterior->next;
tmpInterior->next = tmpExternal;
tmpExternal->pred = tmpInterior;
tmpInterior = tmpExternal->next; //берем следующую структуру для сравнения
}
else tmpInterior = tmpInterior->next; //берем следующую структуру для сравнения
}
tmpExternal = tmpExternalSave; //берем след. структуру, которая пробежит по списку
}
savevfile(*first); //отсортированный список выгружаем в файл
}
Вторая функция сортировки
PHP код:
void FileName (stad **first, stad **close)//функция сортировки списка по названию стадионов
{
stad *tmpExternal = *first; //"внешний" указатель - который будет параметром первого цикла
stad *tmpExternalSave; //сохраняем tmpExternal
stad *tmpInterior; //"внутренний" указатель - парамет вложенного цикла
while (tmpExternal->next)
{
tmpExternalSave = tmpExternal->next; //сохраняем следующий "внешний" указатель
tmpInterior = tmpExternal->next; //"внутренний" указатель, т.е. с какого параметра начинается вложенный цикл
while (tmpInterior)
{
if (strcmp(tmpExternal->name, tmpInterior->name) > 0){ //сравнение поля имя
if (tmpExternal->pred == 0){ //если "взятая" структура первая в списке
*first = tmpExternal->next;
}
else tmpExternal->pred->next = tmpExternal->next;
if (tmpInterior->next == 0){ //если структура, после которой вставляется "взятая" структура, последняя в списке
*close = tmpExternal;
}
else tmpInterior->next->pred = tmpExternal;
tmpExternal->next->pred = tmpExternal->pred;
tmpExternal->next = tmpInterior->next;
tmpInterior->next = tmpExternal;
tmpExternal->pred = tmpInterior;
tmpInterior = tmpExternal->next; //берем след. структуру для сравнения
}
else tmpInterior = tmpInterior->next; //берем след. структуру для сравнения
}
tmpExternal = tmpExternalSave; //берем след. структуру, которая "пробежит" по списку
}
savevfile(*first); //отсортированный список выгружаем в файл
}