СОРТИРУЮЩИЕ СЕТИ на С++

Ответить
Hatycuk
Сообщения: 11
Зарегистрирован: 05 сен 2009, 12:56

Привет все программистам...нужна ваша профессиональная помошь...

Преподаватель дал задачу на так называемые СОРТИРУЮЩИЕ СЕТИ...в вузовской программе такого нет!можете объяснить что это такое,только желательно подробно,как работает и т.д.!!!
и мне нужно вот этот алгоритм реализовать на С++...у меня ровно неделя!!!

пожалуйста пишите кто чем может помочь!!!я в долгу не останусь!!!

и еще он не сказал каких-то конкретных ограничений т.е. просто реализовать на С++ этот алгоритм...
dr.Jekill
Сообщения: 526
Зарегистрирован: 03 янв 2009, 23:17
Откуда: Voronezh
Контактная информация:

Сомневаюсь что этого нет в программе, если преподаватель задал.
Посмотри здесь.
Читай "Алгоритмы: построение и анализ" Кормен Т., Лейзерсон Ч., Ривест Р. дополнительные главы
Нет религии выше истины
Hatycuk
Сообщения: 11
Зарегистрирован: 05 сен 2009, 12:56

dr.Jekill писал(а):Сомневаюсь что этого нет в программе, если преподаватель задал.
Посмотри здесь.
Читай "Алгоритмы: построение и анализ" Кормен Т., Лейзерсон Ч., Ривест Р. дополнительные главы
этого нет в программе обучения...курс программирования кончился,преподавал нам программист с какой-то Омской фирмы...и вот он дал задание самой разобраться и принести программу,с этим алгоритмом сортировки!
--------------------------------------------------------------------------------
Добавлено сообщение
--------------------------------------------------------------------------------
dr.Jekill писал(а): Посмотри здесь.
Читай "Алгоритмы: построение и анализ" Кормен Т., Лейзерсон Ч., Ривест Р. дополнительные главы
Спасибо за книжку,впринципе ничего сверхъестественного!!!но там ни слова про реализацию...подскажите пожалуйста,как можно сделать...
Hatycuk
Сообщения: 11
Зарегистрирован: 05 сен 2009, 12:56

А Я САМА НАПИСАЛА...всем спасибо...
Hatycuk
Сообщения: 11
Зарегистрирован: 05 сен 2009, 12:56

выкладываю код программы,может кому пригодится!!!

Код: Выделить всё

#include "stdio.h"
#include "string.h"
#include "stdlib.h"

void help(){
	printf("Sorting network: \n");
	printf("Format of command: \n");
	printf("\tnet File.cnf [N [N [N [N...]]]] \n");
	printf("File.cnf    - cofiguration text file with net configuration. \n");
	printf("[N [N [...]]] - input values. \n");
}

int main(int argc, char **argv){

	if (argc < 3){
		help();
	    return 0;
}
FILE *fNet = fopen(argv[1],"r");
if (!fNet){
	printf("ERROR: Network file configuration incorrect!\n");
	return 1;
}
printf("loading input values. \n");
int nValues = argc - 2;
int *Value = new int [nValues];
for (int i = 2;i < argc;i++){
	if (sscanf(argv[i], "%i", &Value[i-2])!=1){
		printf("ERROR:\"%s\" isn't number. \n",argv[i]);
		fclose(fNet);
		return -1;
	}
}
printf("working network\n");
int iNetLayer = 0;
while(!feof(fNet)){
	int nPairs = 0;
	printf("%i",iNetLayer);
	if(fscanf(fNet, "%i", &nPairs)!=1){
		return 0;
}
int v1,v2;
for (int i = 0; i< nPairs; i++){
	fscanf(fNet, "%i %i", &v1, &v2);
	//printf("[%i,%i]", v1, v2);
	if(v1 > v2){
		int tmp = v1;
		v1 = v2;
		v2 = tmp;
	}
	if(v2 > nValues){
		printf("ERROR:Incorrent configuration data (index more then array size)\n");
		fclose(fNet);
		return -1;
	}
	if (Value[v1] > Value[v2]){
		int tmp = Value[v1];
		Value[v1] = Value[v2];
		Value[v2] = tmp;
	}
}
for(int i = 0; i < nValues; i++)
	printf(" %i", Value[i]);
printf("\n");
iNetLayer++;
}
return 0;
}

Ответить