Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.76
Nono
0 / 0 / 0
Регистрация: 07.09.2008
Сообщений: 22
#1

Помогите решить алгоритм - C++

07.09.2008, 22:05. Просмотров 2055. Ответов 19
Метки нет (Все метки)

Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.09.2008, 22:05     Помогите решить алгоритм
Посмотрите здесь:

C++ помогите решить))
C++ Помогите решить ...
C++ помогите решить
помогите решить... C++
C++ Помогите решить ошибку
помогите решить циклом!!! C++
Помогите решить C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Vourhey
Почетный модератор
6474 / 2249 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
07.09.2008, 22:09     Помогите решить алгоритм #2
В чем именно нужна помощь, нельзя уточнить? Целиком прогу написать? Тогда платно.
Nono
0 / 0 / 0
Регистрация: 07.09.2008
Сообщений: 22
07.09.2008, 22:13  [ТС]     Помогите решить алгоритм #3
Объяснить хоть как сдвинутся с мертвой точки.
У нас на 1 курсе сразу такого завала не было, а тут столько да в одной лабораторной, что голова кругом ходит.
Vourhey
Почетный модератор
6474 / 2249 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
07.09.2008, 22:21     Помогите решить алгоритм #4
ну память под массив может быть выделена с помощью оператора new...
начиная со второго шага надо объяснить себе и нам, что же такое "барьер", что он должен собой представлять и для чего.
Nono
0 / 0 / 0
Регистрация: 07.09.2008
Сообщений: 22
07.09.2008, 22:48  [ТС]     Помогите решить алгоритм #5
Допустим дан массив линейный: [1, 2, 6, ....., n-1, n].
n -элемент барьер.
Установка барьера обязательна.
Я так понял так, что когда ищется ключ, и допустим, там его нет. Поиск не выходил за пределы этого массива, точно по научному не могу сформулировать.
Casper!
15 / 14 / 1
Регистрация: 02.09.2008
Сообщений: 167
07.09.2008, 22:57     Помогите решить алгоритм #6
а может тебе это поможет ,так как ты не уточнил какои массив тебе надо показываю на одно мерном
Код
#include <iostream>
#include <time.h>
using namespace std;
void main()
{
//Отсортировать в массиве из 10 чисел первые пять
//по возрастанию, вторые пять по убыванию (двумя способами).

	/*const int size=10;
	int a[size],min,imin,max,imax;
	srand(time(0));
	for(int i=0;i<size;i++)// массив генератора случаиных чисел
	{
		a[i]=rand()%10;
		cout<<i<<":"<<a[i]<<'\t';
	}
	cout<<"Puzerkovim\n";//сам массив на сортировку пузирковим методом
	for(int i=0;i<size/2-1;i++)
	{
		for(int j=size/2-1;j>i;j--)
		{
			if(a[j]<a[j-1])
			{
				int tmp=a[j];
				a[j]=a[j-1];
				a[j-1]=tmp;
			}
		}
	}
	for(int i=size/2;i<size-1;i++)
	{
		for(int j=size-1;j>i;j--)
		{
			if(a[j]>a[j-1])
			{
				int tmp=a[j];
				a[j]=a[j-1];
				a[j-1]=tmp;
			}
		}
	}
	for(int i=0;i<size;i++)
	{
		cout<<i<<":"<<a[i]<<'\t';
	}
cout<<"Sortirovkoi\n";//массив методом выбора
	for(int i=0;i<size/2;i++)
	{
		min=a[i];
		imin=i;
		for(int j=i+1;j<size/2;j++)
		{
			if(a[j]<min)
			{
				min=a[j];
				imin=j;
			}
		}
		a[imin]=a[i];
		a[i]=min;
	}
	for(int i=size/2;i<size;i++)
	{
		max=a[i];
		imax=i;
		for(int j=i+1;j<size;j++)
		{
			if(a[j]>max)
			{
				max=a[j];
				imax=j;
			}
		}
		a[imax]=a[i];
		a[i]=max;
	}
	for(int i=0;i<size;i++)
	{
		cout<<i<<":"<<a[i]<<'\t';
	}
	cout<<'\n';*/
}
Nono
0 / 0 / 0
Регистрация: 07.09.2008
Сообщений: 22
07.09.2008, 23:00  [ТС]     Помогите решить алгоритм #7
Цитата Сообщение от Casper! Посмотреть сообщение
а может тебе это поможет ,так как ты не уточнил какои массив тебе надо показываю на одно мерном
Код
#include <iostream>
#include <time.h>
using namespace std;
void main()
{
//Отсортировать в массиве из 10 чисел первые пять
//по возрастанию, вторые пять по убыванию (двумя способами).

	/*const int size=10;
	int a[size],min,imin,max,imax;
	srand(time(0));
	for(int i=0;i<size;i++)// массив генератора случаиных чисел
	{
		a[i]=rand()%10;
		cout<<i<<":"<<a[i]<<'\t';
	}
	cout<<"Puzerkovim\n";//сам массив на сортировку пузирковим методом
	for(int i=0;i<size/2-1;i++)
	{
		for(int j=size/2-1;j>i;j--)
		{
			if(a[j]<a[j-1])
			{
				int tmp=a[j];
				a[j]=a[j-1];
				a[j-1]=tmp;
			}
		}
	}
	for(int i=size/2;i<size-1;i++)
	{
		for(int j=size-1;j>i;j--)
		{
			if(a[j]>a[j-1])
			{
				int tmp=a[j];
				a[j]=a[j-1];
				a[j-1]=tmp;
			}
		}
	}
	for(int i=0;i<size;i++)
	{
		cout<<i<<":"<<a[i]<<'\t';
	}
cout<<"Sortirovkoi\n";//массив методом выбора
	for(int i=0;i<size/2;i++)
	{
		min=a[i];
		imin=i;
		for(int j=i+1;j<size/2;j++)
		{
			if(a[j]<min)
			{
				min=a[j];
				imin=j;
			}
		}
		a[imin]=a[i];
		a[i]=min;
	}
	for(int i=size/2;i<size;i++)
	{
		max=a[i];
		imax=i;
		for(int j=i+1;j<size;j++)
		{
			if(a[j]>max)
			{
				max=a[j];
				imax=j;
			}
		}
		a[imax]=a[i];
		a[i]=max;
	}
	for(int i=0;i<size;i++)
	{
		cout<<i<<":"<<a[i]<<'\t';
	}
	cout<<'\n';*/
}
Большое спасибо!!! Мне нужен линейный (одномерный) массив.
Casper!
15 / 14 / 1
Регистрация: 02.09.2008
Сообщений: 167
07.09.2008, 23:00     Помогите решить алгоритм #8
хм у нас это 2 месяц 1 семестра
Nono
0 / 0 / 0
Регистрация: 07.09.2008
Сообщений: 22
07.09.2008, 23:03  [ТС]     Помогите решить алгоритм #9
не понял (а если про сортировку, там ни чего сложного нету)
vetal-voyts
13 / 12 / 1
Регистрация: 23.08.2008
Сообщений: 43
07.09.2008, 23:13     Помогите решить алгоритм #10
посмотри тему "сортировка двухмерного массива"
там есть код для простого массива
Nono
0 / 0 / 0
Регистрация: 07.09.2008
Сообщений: 22
07.09.2008, 23:21  [ТС]     Помогите решить алгоритм #11
Сам массив:
1. i=-1 (присваивание лежит за пределами цикла)
2. i++
3. for (i==n то поиск не удачен)
4. если А[i]=k ( то поиск удачен), где k – это ключ
Неоптимальный алгоритм действия:
1. i=-1 (присваивание лежит за пределами цикла)
2. i++
3. если А[i]!=k на шаг 2
4. если i==n не удачен, иначе поиск удачен.
Оптимальный алгоритм действия:
1. i=-1 (присваивание лежит за пределами цикла)
2. i++
3. если А[i]<k на шаг 2
4. если А[i]==k то шаг 2
Код подчета времени:
Код
int _tmain(int argc, _TCHAR* argv[])
{
    CPreciseTimeMoment tmStart, tmEnd;

    // Делаем замер времени ДО выполнения алгоритма 
    tmStart.Fix();

    // Начало алгоритма
    Sleep(2325);
    // время выполнения алгоритма в данном примере 
    // имитирует опреатор Sleep, вызывающий "засыпание"
    // процесса на время, указанное в скобках
    // в данном случае на 2,325 секунды
    // Конец алгоритма

    // Делаем второй замер времени ПОСЛЕ выполнения алгоритма
    tmEnd.Fix();

    // Вычисляем разницу
    CPreciseTimeInterval tmInterval = CPreciseTimeInterval(tmStart, tmEnd);

    // Выводим результат измерения на экран
    printf("Estimated time = ");
    tmInterval.Print();

    getch();
    return 0;
}
Сортировка любая.
vetal-voyts
13 / 12 / 1
Регистрация: 23.08.2008
Сообщений: 43
08.09.2008, 00:13     Помогите решить алгоритм #12

если barjer<50 - плохой случай , если barjer>=50 ...
Код
void RandArray(int column,int barjer,int Array[])
	{
              int temp;
	   for(int i=0; i<column; i++)
		   {
		     temp=rand()%50;
                            while(temp>barjer)
                              temp=rand()%50;
                            Array[i]=temp;
		   }
	}
Nono
0 / 0 / 0
Регистрация: 07.09.2008
Сообщений: 22
08.09.2008, 00:28  [ТС]     Помогите решить алгоритм #13
Здесь все так запутано барьер, ключ, время. Я не знаю как все это объединить.
vetal-voyts
13 / 12 / 1
Регистрация: 23.08.2008
Сообщений: 43
08.09.2008, 00:47     Помогите решить алгоритм #14
Код
измеряем_время()
{
   RandArray() // хороший
}

int t1=измеряем_время();

измеряем_время()
{
   RandArray() // плохой
}

int t2=измеряем_время();

сравнить(t1,t2);

измеряем_время()
{
  SuchArray() // плохой key>barjer
}

t3=измеряем_время();
измеряем_время()
{
  SuchArray() //  key<barjer
}

t4=измеряем_время();
сравнить(t3,t4);
Casper!
15 / 14 / 1
Регистрация: 02.09.2008
Сообщений: 167
08.09.2008, 19:19     Помогите решить алгоритм #15
Цитата Сообщение от vetal-voyts Посмотреть сообщение
посмотри тему "сортировка двухмерного массива"
там есть код для простого массива
да точно тоже вариант это тоже тема каторую я раздул =)
Nono
0 / 0 / 0
Регистрация: 07.09.2008
Сообщений: 22
10.09.2008, 09:50  [ТС]     Помогите решить алгоритм #16
Цитата Сообщение от Casper! Посмотреть сообщение
да точно тоже вариант это тоже тема каторую я раздул =)
там только сортировка получается.
Nono
0 / 0 / 0
Регистрация: 07.09.2008
Сообщений: 22
15.09.2008, 19:19  [ТС]     Помогите решить алгоритм #17
Casper!
15 / 14 / 1
Регистрация: 02.09.2008
Сообщений: 167
15.09.2008, 20:04     Помогите решить алгоритм #18
что то у тя куча библиотек а по этому алгоритму я невижу что бы они нужны были

Добавлено через 9 минут 9 секунд
//k=15;//ключ
// переменная цикла
//i++;
//заполнение массива
for (i=1; i<n+1; i++) зачем здесь i<n+1 не легче если уж ты наченаешь с i=1 то i<=n и все а где у тя устонвливаемое начальную точку для генератора случ чисел (srand(time(0));????и кстати массив наченаеться всегда с 0 A[0] и т.д.......... поэтому for(int i=0;i<n;i++)
{
A[i]= rand()%100;
cout<<A[i]<<'\n';
}
vetal-voyts
13 / 12 / 1
Регистрация: 23.08.2008
Сообщений: 43
16.09.2008, 15:29     Помогите решить алгоритм #19
один из способов измерить время

Код
#include<iostream>
#include<windows.h>

using namespace std;

void main()
    {
        int i=100000000;
        unsigned int start=GetTickCount();
        while(i--)
            ;
        unsigned int finish=GetTickCount();
        cout<<"time : "<<(finish-start)/1000.<<endl;
    }
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.09.2008, 19:36     Помогите решить алгоритм
Еще ссылки по теме:

Помогите решить... C++
Помогите решить в С++ C++
C++ помогите решить
Помогите решить лабу [2] C++
Помогите решить . C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Nono
0 / 0 / 0
Регистрация: 07.09.2008
Сообщений: 22
19.09.2008, 19:36  [ТС]     Помогите решить алгоритм #20
Спасибо всем, большое спасибо!!!!!!
Тема закрыта!!!!!!!
Yandex
Объявления
19.09.2008, 19:36     Помогите решить алгоритм
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru