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

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

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

Дан алгоритм сортировки
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;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.11.2011, 23:24     Метод простой вставки с модификацией
Посмотрите здесь:

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

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
30.11.2011, 15:08     Метод простой вставки с модификацией #2
внутренний цикл должен быть
Yandex
Объявления
30.11.2011, 15:08     Метод простой вставки с модификацией
Ответ Создать тему
Опции темы

Текущее время: 10:37. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru