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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.04.2011, 18:12   #1
Anubys
Форумчанин
 
Регистрация: 08.05.2010
Сообщений: 177
По умолчанию Перевод из рекурсии на итерацию

Помогите пожалуйста написать не рекурсивную функцию быстрой сортировки
вот алгоритм основан на рекурсии
Код:
float partition(int *a, int l, int r,int &f);
void qsort(int *a, int l, int r,int &t)
{
	  if(l>=r) return;
	  float c=partition(a,l,r,t);
	  qsort(a,l,c,t);
	  qsort(a,c+1,r,t);

}
float partition(int *a, int l, int r,int &f)
{
	float x=a[l];
	int i=l-1;
	int j=r+1;

	while(1)
	{
		do{ j--; } while(a[j]>x);
		do{ i++; } while(a[i]<x);
		if(i<j)
		{
		swap(a[i],a[j]);
		f++;
		}
		else return j;
	}
}
Заранее благодарю
Anubys вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
из рекурсии - цикл Deathsoul Помощь студентам 2 02.06.2010 10:19
Рекурсии на Паскале:) Валера В. Помощь студентам 4 04.01.2010 17:05
Рекурсии RAMA Паскаль, Turbo Pascal, PascalABC.NET 6 18.10.2009 13:56
выход из рекурсии L_M Помощь студентам 9 03.10.2008 18:03
Рекурсии Logan Паскаль, Turbo Pascal, PascalABC.NET 1 13.05.2008 08:52