По разделам



Задача Array 115


Дан массив A размера N. Не изменяя данный массив, вывести номера его элементов в том порядке, в котором соответствующие им элементы образуют возрастающую последовательность. Использовать метод «пузырьковой» сортировки (см. задание Array112), модифицировав его следующим образом: создать вспомогательный целочисленный массив номеров I, заполнив его числами от 1 до N; просматривать массив A, сравнивая пары элементов массива A с номерами I1 и I2, I2 и I3, ... и меняя местами соответствующие элементы массива I, если левый элемент пары больше правого. Повторив описанную процедуру просмотра N−1 раз, получим в массиве I требуемую последовательность номеров.

Код (C/C++)

#include <stdio.h>
int main(void)
{
    int a[20];
    int i[20];
    int n;
    printf("N: ");
    scanf("%i",&n);
 
    int i4;
    for (i4=0; i4<n; ++i4){
        printf("a[%i] : ",i4+1);
        scanf("%i",&a[i4]);
        i[i4]=i4;
    }
 
    int i2,i3;
    for (i4=0; i4<n; ++i4){
        for (i2=0; i2<=n-i4-2; ++i2){             if (a[i[i2]]>a[i[i2]+1]){
                i[i2]+=i[i2+1];
                i[i2+1]=i[i2]-i[i2+1];
                i[i2]-=i[i2+1];
            }
        }
        for (i3=0; i3<n;++i3) printf("  %i: %i\n",i3+1,i[i3]+1);
    }
 
    return 0;
}

Код (Python)

import random

N = random.randrange(2,10)
#a = [2*(i+1) for i in range(N)]
A = [random.randrange(0,10) for i in range(N)]
I = [i for i in range(N)]
print("N = ", N)
print("Array A:")
print(A)
print("Array I:")
print(I)

for i in range(1,N) :
    for j in range(0,N-1) :
        if A[I[j]] > A[I[j+1]] :
            I[j], I[j+1] = I[j+1], I[j]

print("Sorted Array:")
for i in range(0,N) :
    print(A[I[i]],end=", ")

##print()
##print("Array A:")
##print(A)
##print("Array I:")
##print(I)
									

Код (Pascal)

program Array115;
var
 a : array [1..6] of real;
 i: array [1..6] of integer;
 N,N2,k,k2,k3: integer;
 
begin
 Write('N: ');
 Readln(N);
 
 Writeln('A: ');
 for k:=1 to N do
  begin
   write(k,' :');
   readln(a[k]);
   i[k]:=k;
  end;
 N2:=N;
 for k:=1 to N-1 do
  begin
   k2:=1;
   N2:=N2-1;
   while (k2<=N2) do     begin      if a[i[k2]] > a[i[k2]+1] then
      begin
       i[k2]:=i[k2]+i[k2+1];
       i[k2+1]:=i[k2]-i[k2+1];
       i[k2]:=i[k2]-i[k2+1];
      end;
     inc(k2);
    end;
   for k3:=1 to N do writeln(i[k3]);
   readln;
  end;
end.
									




Array. Абрамян
Array 1 Просмотров: 15
Array 2 Просмотров: 12
Array 3 Просмотров: 11
Array 4 Просмотров: 16
Array 5 Просмотров: 12
Array 6 Просмотров: 21
Array 7 Просмотров: 11
Array 8 Просмотров: 15
Array 9 Просмотров: 13
Array 10 Просмотров: 16
Array 11 Просмотров: 10
Array 12 Просмотров: 12
Array 13 Просмотров: 14
Array 14 Просмотров: 18
Array 15 Просмотров: 18
Array 16 Просмотров: 11
Array 17 Просмотров: 10
Array 18 Просмотров: 13
Array 19 Просмотров: 9
Array 20 Просмотров: 10
Array 21 Просмотров: 13
Array 22 Просмотров: 19
Array 23 Просмотров: 8
Array 24 Просмотров: 11
Array 25 Просмотров: 8
Array 26 Просмотров: 13
Array 27 Просмотров: 17
Array 28 Просмотров: 10
Array 29 Просмотров: 12
Array 30 Просмотров: 10
Array 31 Просмотров: 8
Array 32 Просмотров: 15
Array 33 Просмотров: 9
Array 34 Просмотров: 10
Array 35 Просмотров: 9
Array 36 Просмотров: 12
Array 37 Просмотров: 6
Array 38 Просмотров: 13
Array 39 Просмотров: 11
Array 40 Просмотров: 11
Array 41 Просмотров: 12
Array 42 Просмотров: 9
Array 43 Просмотров: 9
Array 44 Просмотров: 8
Array 45 Просмотров: 14
Array 46 Просмотров: 9
Array 47 Просмотров: 9
Array 48 Просмотров: 11
Array 49 Просмотров: 7
Array 50 Просмотров: 9
Array 51 Просмотров: 8
Array 52 Просмотров: 8
Array 53 Просмотров: 16
Array 54 Просмотров: 20
Array 55 Просмотров: 11
Array 56 Просмотров: 13
Array 57 Просмотров: 9
Array 58 Просмотров: 11
Array 59 Просмотров: 10
Array 60 Просмотров: 15
Array 61 Просмотров: 10
Array 62 Просмотров: 11
Array 63 Просмотров: 12
Array 64 Просмотров: 14
Array 65 Просмотров: 12
Array 66 Просмотров: 10
Array 67 Просмотров: 16
Array 68 Просмотров: 9
Array 69 Просмотров: 11
Array 70 Просмотров: 16
Array 71 Просмотров: 12
Array 72 Просмотров: 12
Array 73 Просмотров: 9
Array 74 Просмотров: 9
Array 75 Просмотров: 18
Array 76 Просмотров: 11
Array 77 Просмотров: 12
Array 78 Просмотров: 14
Array 79 Просмотров: 12
Array 80 Просмотров: 12
Array 81 Просмотров: 15
Array 82 Просмотров: 8
Array 83 Просмотров: 7
Array 84 Просмотров: 9
Array 85 Просмотров: 11
Array 86 Просмотров: 10
Array 87 Просмотров: 15
Array 88 Просмотров: 19
Array 89 Просмотров: 13
Array 90 Просмотров: 13
Array 91 Просмотров: 12
Array 92 Просмотров: 10
Array 93 Просмотров: 10
Array 94 Просмотров: 7
Array 95 Просмотров: 8
Array 96 Просмотров: 16
Array 97 Просмотров: 9
Array 98 Просмотров: 8
Array 99 Просмотров: 11
Array 100 Просмотров: 9
Array 101 Просмотров: 11
Array 102 Просмотров: 11
Array 103 Просмотров: 11
Array 104 Просмотров: 9
Array 105 Просмотров: 11
Array 106 Просмотров: 16
Array 107 Просмотров: 9
Array 108 Просмотров: 12
Array 109 Просмотров: 9
Array 110 Просмотров: 9
Array 111 Просмотров: 10
Array 112 Просмотров: 12
Array 113 Просмотров: 17
Array 114 Просмотров: 17
Array 115 Просмотров: 15
Array 116 Просмотров: 13
Array 117 Просмотров: 8
Array 118 Просмотров: 9
Array 119 Просмотров: 8
Array 120 Просмотров: 9
Array 121 Просмотров: 6
Array 122 Просмотров: 26
Array 123 Просмотров: 10
Array 124 Просмотров: 10
Array 125 Просмотров: 15
Array 126 Просмотров: 8
Array 127 Просмотров: 9
Array 128 Просмотров: 9
Array 129 Просмотров: 11
Array 130 Просмотров: 15
Array 131 Просмотров: 11
Array 132 Просмотров: 13
Array 133 Просмотров: 16
Array 134 Просмотров: 10
Array 135 Просмотров: 13
Array 136 Просмотров: 19
Array 137 Просмотров: 13
Array 138 Просмотров: 10
Array 139 Просмотров: 12
Array 140 Просмотров: 11

Комментарии

Чтобы написать комментарии вам нужно войти в систему или зарегистрироваться