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

Сортировка одномерного массива бинарной вставкой - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.73
sanya0107
 Аватар для sanya0107
121 / 121 / 4
Регистрация: 14.02.2010
Сообщений: 289
01.12.2010, 15:47     Сортировка одномерного массива бинарной вставкой #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
32
33
34
35
#include <iostream.h>
#include <math.h>
 
main()
{
const int size=10;
int mas[size]={1,34,6,5,23,454,7657,8768,43};
 int temp=0;
 int left=0,right=0,sred=0;
 
  for (int i=1; i<size; i++)
   if (mas[i-1] > mas[i])
    {
     temp=mas[i];
      left=0;
      right=i-1;
       sred=(left+right) / 2;
         while (left <= right)
        {
         sred=(left+right) / 2;
             if (mas[sred] < temp)
                        left=sred+1;
                             else
                                 right=sred-1;
                                }
 
        for (int j=i-1; j>left; j--)
         mas[j+1]=mas[j];
         mas[left]=temp;
       }
 for (int i=0; i<size; i++)
  cout<<mas[i]<<"  ";
int s;
cin>>s;
return 0;}
Проблема в том что не правильно сортирует!!
В чем ошибка??

Добавлено через 23 минуты
все разобрался!! всем спс

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
32
33
34
35
36
37
38
39
#include <iostream.h>
#include <math.h>
 
main()
{
 int mas[10];
 int temp=0;
 int left=0,right=0,sred=0;
 
 cout<<"Vvedite znachenie"<<endl;
 
  for (int i=0; i<10; i++)
  {
       cout<<"mas["<<i<<"] = ";
       cin >>mas[i];
  }
  for (int i=1; i<10; i++)
    {
     temp=mas[i];
      left=i;
      right=0;
         while (left > right)
        {
         sred=(left+right) / 2 ;
             if (mas[sred] < temp)
                        left=sred;
                             else
                                 right=sred+1;
                                }
 
        for (int j=i-1; j>=left; j--)
         mas[j+1]=mas[j];
         mas[left]=temp;
       }
 for (int i=0; i<10; i++)
  cout<<mas[i]<<"  ";
int s;
cin>>s;
return 0;}
вот рабочий вариант!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.12.2010, 15:47     Сортировка одномерного массива бинарной вставкой
Посмотрите здесь:

C++ Сортировка одномерного массива
Сортировка одномерного массива C++
C++ Сортировка одномерного массива С++
Сортировка одномерного массива C++
C++ Сортировка одномерного массива
C++ Сортировка массива вставкой
Сортировка массива вставкой, чтобы четные числа шли по возрастанию, а нечетные по убыванию C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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