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

Метод простой вставки с модификацией - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Игра крестики-нолики http://www.cyberforum.ru/cpp-beginners/thread395224.html
Здравствуйте, ребята! Вообщем такое задание: Создать класс типа игра крестики-нолики. Поле класса - массив из (3х3). Ставить можна только на свободные. Написал прогу: Процесс игры ведется в консоли. Игрок задает положение игры координатой: столбец, строка. Но проблемка в том: Если координата находится вне доски то выдается сигнал об ошибке и координата запрашивается заново. --- у меня же...
C++ Логическая задачка Здравствуйте. Помогите решить задачку. Имеется 100 рублей. Стоимость курицы 1,5 рубля, овечки 2 руб. , бычка 5 руб. Вопрос: сколько всевозможных комбинаций можно проделать для покупки без остатка. Мои размышления. Составляем уравнения 1,5x+2y+5z=100. Все числа должны быть целые. Х начинается с 6, у-только парные, z- делятся на 5. В голове крутиться, что нужно прогонять в не в одном цикле,... http://www.cyberforum.ru/cpp-beginners/thread395208.html
rdtsc gcc C++
#include <stdio.h> static inline unsigned long long tick() { unsigned long long d; __asm__ __volatile__ ("rdtsc" : "=A" (d) ); return d; } int main() { long long res;
C++ Почему происходит остановка цикла?
Подскажите почему при заполнении массива строками длиной от 5 символов, происходит остановка цикла? И как это можно исправить? #include <iostream.h> struct clinic { char FIO; char number_room; }; void vvod (clinic data, int &n) {
C++ рекурсия функцию http://www.cyberforum.ru/cpp-beginners/thread395203.html
Описать рекурсивную функцию Palindrom(S) логического типа,возвпощающую True, если строка S является палиндромом (то есть читается одинаково слева направо и справо налево), и FALSE В ПРв противном случае. Оператор цикла в теле функции не использовать. Выввести значение функции Palindrom для пяти данных строк.
C++ как исправить ошибку outportb(0x43,0x36); /* Управляющий байт */ Доброго времени суток. Есть программка для управления таймером с такими параметрами: R= 0 - 1 ; F(x)=y=50*sin(x/(10+R))+150 ; Частота=36.4 Гц И соответственно код: #include <dos.h> #include <math.h> #include <stdlib.h> #include <graphics.h> #include <time.h> #include <conio.h> #define TIMEINT 8 /* Прерывание таймера */ #define NN 100 /*... подробнее

Показать сообщение отдельно
parkito
 Аватар для parkito
11 / 11 / 2
Регистрация: 22.03.2010
Сообщений: 685
29.11.2011, 23:24     Метод простой вставки с модификацией
Помогите пожалуйста мне в решении этой задачи

Дан алгоритм сортировки
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <iostream>
 
using namespace std;
 
int main()
{int x=0,a[]={2,3,1,9,4,6,5,8,7,0},n=10;
 
for(int i=1;i<n;i++)
{
 x=a[i];
 for(int j=i-1;j>=0;j--)
 {
   if(x>a[j])
  {
  a[j+1]=x;
  break;
  }
else
  {
        a[j+1]=a[j];
  }
 
  a[j]=x;
  }
 }
for(int q=0;q<n;q++)
{cout<<a[q]<<endl;}
    cin.get();
    cin.get();
    return 0;
}
Как усовершенствовать его до метода бинарной вставки. То есть чтоб количество сравниваний уменьшилось. Вот я набросал немного. Но эта конструкция не работает

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <iostream>
 
using namespace std;
 
int main()
{int x=0,a[]={2,3,1,9,4,6,5,8,7,0},n=10,m=0;
 
for(int i=1;i<n;i++)
{ m=(i-1)/2;
 x=a[i];
  if(x<a[m])
  {
        a[i]=a[m];
        a[m]=x;
        i=0;
         
  }
}
for(int q=0;q<n;q++)
{cout<<a[q]<<endl;}
    cin.get();
    cin.get();
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 04:32. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru