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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.12.2011, 06:13   #1
Belka.ru
Пользователь
 
Регистрация: 05.12.2011
Сообщений: 11
По умолчанию доделать почти готовые задачи.С++.50р за каждую.

1 задача.Отсортировать массив тремя видами сортировки.выбором вставками и обменом.вывести количество сравнений и присваиваний.
мой код:
Код:
#include <iostream>
#include <stdlib.h>
#include <time.h>
using namespace std;
int main ()
{
	setlocale(LC_ALL,"Russian");
	const int n=10;
	int x[n],i,j,q=0,z=0,k,t,m,h,temp;
	cout << "Задайте массив из " << n << " элементов для сортировки обменом" << endl;
	srand (time(NULL));
	for (i=0;i<n;i++)
		cin >> x[i];
	cout << endl;
		for (i=0;i<n;i++)
			for (j=n-1;j>i;j--,q++)
			{
		if (x[j-1]>x[j])
		{
			m=x[j-1];
			x[j-1]=x[j];
			x[j]=m;
			z++;
		}
			}
		for (i=0;i<n;i++)
		cout << x[i] << " ";
	cout << endl;
	cout << "количество сравнений = " << q << "\n";
	z=z*3;
	cout << "количество присваиваний = " << z << "\n";
	cout << endl;
	cout << "Введите тот же массив для сортировки методом выбора";
	cout << endl;
	for (i=0;i<n;i++)
		cin >> x[i];
	cout << endl;
	q=0;z=0;
	for (i=0;i<n;i++){
		int min=i;
		for(j=i+1;j<=n;j++){
				q++;
			if(x[j]<x[min]){
		min=j;
			}
		}
		if(min!=i)
		swap(x[i],x[min]);
			z++;
	
	}
	for (i=0;i<n;i++)
	cout << x[i] << " ";
	cout << endl;
	cout << "количество сравнений = " << q << "\n";
	z=z*3;
	cout << "количество присваиваний = " << z << "\n";
	cout << endl;
	int w;
	for(i=0;i<n;i++)
		cin >> x[i];
	q=0,z=0;
	for (i=1;i<n;i++)
	{
		w=x[i];
		for (j=i-1;j>=0 && (x[j] > w);j--)
		{
			q++;
			x[j+1]=x[j];
			x[j]=w;
	}
	if(i>0)
	
		z++;
	}
	
				for (i=0;i<n;i++)
	cout << x[i] << " ";
				cout << endl;
				cout << "Количество сравнений = " << q << endl;
				z=z*3;
				cout << "Количество присваиваний = " << z << endl;
	system("pause >> void");
	return 0;
	}
здесь сортировка обменом работает хорошо,а вот выбором вообще не сортирует массив и выводит неверные результаты.про вставки незнаю, может правильно может нет.

Задача 2.отсортировать массив тремя видами сортировки.Обменом,улучшеным обменом и шейкер-сортировкой.вывести количество сравнений и присваиваний.

Код:
#include <iostream>
#include <conio.h>
#include <stdlib.h>
using namespace std;
void BubbleSort(int *x, const int n)
{
	int i,j,m;
	for (i=0;i<n;i++) 
       for (j=n-1;j>i;j--) 
       { 
     if (x[j-1]>x[j]) 
     { 
       m=x[j-1]; 
       x[j-1]=x[j]; 
       x[j]=m;  
     } 
	   }
}
void SheikerSort(int *a, const int n) 
 { 
            int l, r, i, k, buf; 
            k = l = 0; 
            r = n - 2; 
            while(l <= r) 
            { 
               for(i = l; i <= r; i++) 
                  if (a[i] > a[i+1]) 
                  { 
                     buf = a[i]; a[i] = a[i+1]; a[i+1] = buf; 
                     k = i; 
                  } 
               r = k - 1; 
               for(i = r; i >= l; i--) 
                  if (a[i] > a[i+1]) 
                  { 
                     buf = a[i]; 
         a[i] = a[i+1]; 
         a[i+1] = buf; 
                     k = i; 
                  } 
               l = k + 1; 
            } 
         }
void Bestsort(int arr[], int L, int R) 
 { 
  if (L >= R) 
  return; 
  int m = (L + R) /2; 
  int mediana = arr[m]; 
  int LL = L; 
  int RR = R; 
  while (LL < RR) { 
  while (arr[LL] < mediana) 
  LL++; 
  while (arr[RR] > mediana) 
  RR--; 
  if (LL <= RR) { 
  int swap = arr[LL]; 
  arr[LL] = arr[RR]; 
  arr[RR] = swap; 
  LL++; 
  RR--; 
  } 
  } 
  if (LL<R) 
  Bestsort (arr , LL , R); 
  if (RR > L) 
  Bestsort (arr , L , RR); 
 }
void main(void) 
{ 
  int i;
  setlocale(LC_ALL,"Russian");
  int arr[] =  { 5, 19, 4, 7, 15, 12, 1, 6, 10, 8 }; 
  int ARR_LENGTH =  sizeof (arr) / sizeof (int); 
  Bestsort (arr , 0 , ARR_LENGTH - 1); 
  cout << "Улучшеная сортировка обменом:" << endl;;
  for (i=0; i < ARR_LENGTH; i++) 
  cout << arr[i] << " "; 
         cout << endl;
		 cout << endl;
		int a[10] = {5, 19, 4, 7, 15, 12, 1, 6, 10, 8}; 
    SheikerSort(a, 10); 
	cout << "Шейкерная сортировка:" << endl;
    for(i = 0; i < 10; i++) 
		cout << a[i] << " ";
	cout << endl;
	cout << endl;
	const int n=10;
	int x[10] = {5, 19, 4 , 7 ,15 , 12 , 1 , 6 , 10 , 8};
    BubbleSort(x,10);
	cout << "Сортировка обменом: " << endl;
	for(i = 0; i < 10; i++) 
		cout << x[i] << " ";
    getchar();
   system("pause >> void");
 }
здесь работают сортировки,нужно всего-лишь добавить счетчики сравнений и присваиваний(что я не могу сделать).
Belka.ru вне форума Ответить с цитированием
Старый 12.12.2011, 12:03   #2
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,866
По умолчанию

По мне, так дешево очень. В 200 руб. каждую еще можно было бы оценить, но 50 руб. - это курам на смех...
Arigato на форуме Ответить с цитированием
Старый 12.12.2011, 12:52   #3
Belka.ru
Пользователь
 
Регистрация: 05.12.2011
Сообщений: 11
По умолчанию

это если писать с нуля, то можноа тут то они почти готовые.
Belka.ru вне форума Ответить с цитированием
Старый 12.12.2011, 14:28   #4
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,866
По умолчанию

Так ведь надо еще разбираться в чужом коде, что тоже есть работа. Просто 50 руб. - это вообще ни в какие рамки...
Arigato на форуме Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задачи на обработку строк: удалить каждую 3-ю букву, найти кол-во гласных, кол-во цифр в строке,совпадения в 2-х строках Ирина93 Паскаль, Turbo Pascal, PascalABC.NET 6 05.11.2011 22:10
Перевести готовые задачи на систему Mathematica!! Toni Milano Фриланс 2 28.05.2011 16:00
Сайты. Скрипты. Программы от 50р overtake Фриланс 6 18.04.2010 17:01
Почти готовые "гонки" Ulex Gamedev - cоздание игр: Unity, OpenGL, DirectX 11 20.09.2008 21:48