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

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

Войти
Регистрация
Восстановить пароль
 
DeFeND
0 / 0 / 1
Регистрация: 18.10.2011
Сообщений: 37
#1

Шейкерная сортировка и последовательный поиск(код на паскаль дан) - C++

14.05.2012, 19:02. Просмотров 579. Ответов 0
Метки нет (Все метки)

Дано натуральное число N (1£N£100), целочисленный линейный массив a0, a1, …, aN-1. Элементы массива заполняются случайными целыми числами из диапазона [0, N]. Требуется отсортировать массив. Метод сортировки шейкерный. После сортировки произвести поиск в массиве введенного значения последовательно с конца массива
Код Паскаль я уже сделал вот он,перевидите на С
Pascal
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
Uses Crt;
Const
n= 10;
m= 10;
 
Type
  TIndex = 1..N;
  TElement = integer;
  TVector = array [TIndex] of TElement;
 
Var
  a: TVector;
  i:TIndex;
 
 {Їа®жҐ¤га* ᮧ¤**Ёп ¬*ббЁў*}
Procedure MakeVector(var a: TVector);
Var
  i:TIndex;
 
  begin  {MakeVector}
   randomize;
   for i:=1 to n do
   a[i]:=1+random(n+1);
  end;   {MakeVector}
 
 {Їа®жҐ¤га* ўлў®¤* ** нЄа** ¬*ббЁў* *}
procedure PrintVector (Var a: TVector);
 Var
   i:TIndex;
 
 begin {PrintVector}
 
  for i:=1 to N do
   write (a[i]:5);
  writeln;
 
 end;  {PrintVector}
 
{Џа®жҐ¤га* ®Ў¬Ґ**}
Procedure Swap (var f,g: TElement);
 Var
   t:TElement;
 
 begin {Swap}
   t:=f;
   f:=g;
   g:=t;
 end;  {Swap}
 
 
  {Џа®жҐ¤га* Ї®ЁбЄ* б Є®*ж* ¬*ббЁў*}
 procedure search(i:TIndex);
var
k:integer;
 
begin
  i:=n;
  writeln('ўўҐ¤ЁвҐ н«Ґ¬Ґ*в, Є®в®ал© *г¦*® **©вЁ');
  readln(k);
  while (i>=1) and (a[i]<>k) do
  dec(i);
    if i>=1 then writeln ('н«Ґ¬Ґ*в **©¤Ґ*, Ё*¤ҐЄб i= ', i)
    else
    writeln('н«Ґ¬Ґ*в *Ґ **©¤Ґ*')
end;
 
 
 {Їа®жҐ¤га* 襩ЄҐа*®© б®авЁа®ўЄЁ}
Procedure QNSort(l,r:integer);
 Var
   k,j:integer;
   x:integer;
 Begin
   l:=2;
   r:=n;
   k:=n;
   repeat
        for j:=r downto l do
          if a[j-1]>a[j] then
            begin
            x:=a[j-1];
            a[j-1]:=a[j];
            a[j]:=x;
            k:=j
            end;
        l:=k+1;
        for j:=l to r do
          if a[j-1]>a[j] then
            begin
            x:=a[j-1];
            a[j-1]:=a[j];
            a[j]:=x;
            k:=j
            end;
        r:=k-1;
        until l>r
        end ;
  Begin  {Program}
  MakeVector(a);  {‘®§¤**ЁҐ ¬*ббЁў* *}
  Writeln('?б室*л© ¬*ббЁў:');
  PrintVector(a); {‚лў®¤ ** нЄа** ¬*ббЁў* *}
  QNSort(1,n);
  Writeln ('®вб®авЁа®ў***л© ¬*ббЁў:');
  PrintVector(a);
  Search(i);
  readkey;
End.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.05.2012, 19:02     Шейкерная сортировка и последовательный поиск(код на паскаль дан)
Посмотрите здесь:

C++ Шейкерная сортировка двусвязного списка
C++ Индексно-последовательный поиск
C++ Поиск. Последовательный поиск
Последовательный и быстрый последовательный поиски C++
C++ Бинарно-последовательный поиск
Шейкерная сортировка массива (в виде функции) C++
Массивы и последовательный поиск C++
C++ Переписать код с паскаль на С++
Переписать код с паскаль на С++ C++
C++ Перевести код Паскаль на С++
C++ Шейкерная сортировка без использования while цикла
C++ Шейкерная сортировка массива

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

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

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