2 / 2 / 1
Регистрация: 11.09.2013
Сообщений: 85
1

Заполнить массив из N вещественных чисел случайным образом. Отсортировать его по возрастанию 2 способами

19.11.2013, 22:20. Показов 6293. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Заполнить массив из N вещественных чисел случайным образом. Отсортировать его по возрастанию 2 способами (например, пузырьком и простыми вставками, либо иной сортировкой на ваш выбор).
Пузырьковая сортировка массива.
Реализация:
Pascal
1
2
3
4
5
6
7
for i := 1 to m - 1 do
  for j := 1 to m - i do
    if mas[j] > mas[j + 1] then begin
      k := mas[j];
      mas[j] := mas [j + 1];
      mas[j + 1] := k
    end;
Алгоритм сортировки простыми вставками.
1. Первый элемент записать "не раздумывая".
2 Пока не закончится последовательность вводимых данных, для каждого нового ее элемента выполнять следующие действия:
- начав с конца уже существующей упорядоченной последовательности, все ее элементы, которые больше, чем вновь вводимый элемент, сдвинуть на 1 шаг назад;
- записать новый элемент на освободившееся место.
При этом, разумеется, можно прочитать все вводимые элементы одновременно, записать их в массив, а потом "воображать", что каждый очередной элемент был введен только что. На суть и структуру алгоритма это не повлияет.
Реализация:
Pascal
1
2
3
4
5
6
7
8
9
for i:= 2 to N do 
 if a[i-1]>a[i] then                  
  begin x:= a[i]; 
      j:= i-1; 
   while (j>0)and(a[j]>x) do  begin 
        a[j+1]:= a[j]; 
        j:= j-1;   end; 
  a[j+1]:= x; 
 end;
Метод прямых вставок с барьером
Дополним сортируемый массив нулевой компонентой и будем записывать в нее поочередно каждый вставляемый элемент. В тех случаях, когда вставляемое значение окажется меньше, чем a[1], компонента a[0] будет работать как "барьер", не дающий индексу j выйти за нижнюю границу массива. Кроме того, компонента a[0] может заменить собою и дополнительную переменную х.
Реализация:
Pascal
1
2
3
4
5
6
7
8
9
for i:= 2 to N do 
 if a[i-1]>a[i] then  
  begin a[0]:= a[i];      
      j:= i-1; 
       while a[j]>a[0] do             
     begin a[j+1]:= a[j]; 
      j:= j-1;     end; 
  a[j+1]:= a[0]; 
 end;
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
19.11.2013, 22:20
Ответы с готовыми решениями:

Создать динамический 2-мерный массив, заполнить его случайным образом, сортировать столбцы по возрастанию их суммы
Создать динамический 2-мерный массив, заполнить его случайным образом, сортировать столбцы по...

Отсортировать (по неубыванию) методом прямого выбора массив целых чисел A[n], n> 100. Массив заполнить случайным образом
Во втором button сортировка не работает. Помогите( ...

Как сгенерировать случайным образом массив и отсортировать по возрастанию модулей
Сгенерировать случайным образом массив целых чисел (в дипазоне -100 до 100), размерностью N=60, и...

Массив заполнить случайным образом, упорядочить по возрастанию, найти количество и сумму четных элементов
Написать программу для решения поставленной задачи. Все входные массивы заполняются случайными...

1
121 / 87 / 90
Регистрация: 30.12.2012
Сообщений: 511
19.11.2013, 23:02 2
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
program sort;
 
const
  n = 5;
 
type
  mas = array[1..n] of integer;
 
var
  a: mas;
  i: byte;
 
procedure simpleInsertion(a: mas);
var
  i, j: byte;
  x: integer;
begin
  writeln('Сортировка простыми вставками: ');
  for i := 2 to n do
    if a[i - 1] > a[i] then
    begin
      x := a[i];
      j := i - 1;
      while (j > 0) and (a[j] > x) do
      begin
        a[j + 1] := a[j];
        j := j - 1;
      end;
      a[j + 1] := x;
    end;
  for i := 1 to n do
    write(a[i]:5);
end;
 
procedure bubble(a: mas);
var
  i, j: byte;
  buf:integer;
begin
  writeln('Сортировка пузырьком: ');
  for i:=1 to n-1 do 
    for j:=i+1 to n do
      if a[i]>a[j] then 
        begin
          buf:=a[i]; 
          a[i]:=a[j]; 
          a[j]:=buf;
        end;
  for i := 1 to n do
    write(a[i]:5);
end;
 
begin
  randomize;
  writeln('Исходный массив: ');
  for i := 1 to n do
  begin
    a[i] := random(100) - 50;
    write(a[i]:5);
  end;
  writeln;
  simpleInsertion(a);
  writeln;
  bubble(a);
end.
0
19.11.2013, 23:02
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.11.2013, 23:02
Помогаю со студенческими работами здесь

Создать массив размерностью 7 х 7, заполнить его случайным образом цифрами
Создать массив размерностью 7 х 7, заполнить его случайным образом цифрами 7, 5 и 2. Результат в...

Объявить статический массив размерности 20. Заполнить его «случайным образом»...
Задача 2. Объявить статический массив размерности 20. Заполнить его «случайным образом»....

Заполнить массив целых чисел случайным образом
Добрый день, прошу помочь решить эту сложную (для меня задачку). Спасибо за внимание к теме....

Заполнить массив из N целых чисел случайным образом из диапазона от -10 до 10
заполнить массив из n целых чисел случайным образом из диапазона от -10 до 10


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

Новые блоги и статьи
Использование связки C# и PHP в корпоративной разработке и микросервисной архитектуре
InfoMaster 16.01.2025
Введение в интеграцию C# и PHP В современной корпоративной разработке все чаще возникает потребность в создании гибких и масштабируемых решений, способных эффективно решать широкий спектр. . .
Как использовать Kerio дома для управления сетью и пользователями
InfoMaster 16.01.2025
Использование технологий для улучшения повседневной жизни стало неотъемлемой частью современного быта. Одной из таких технологий является Kerio — мощный инструмент для управления сетью и. . .
Есть ли будущее у DVD и Blu-ray?
InfoMaster 16.01.2025
В эпоху стремительного развития цифровых технологий и повсеместного распространения потоковых сервисов вопрос о будущем физических носителей информации становится все более актуальным. Особенно остро. . .
Как проводить научные вычисления на Python
InfoMaster 15.01.2025
Python стал одним из наиболее востребованных языков программирования в области научных вычислений благодаря своей простоте, гибкости и обширной экосистеме специализированных библиотек. Научные. . .
Создание игры типа Minecraft на PyGame/Python: пошаговое руководство
InfoMaster 15.01.2025
В данном руководстве мы рассмотрим процесс создания игры в стиле Minecraft с использованием библиотеки PyGame на языке программирования Python. Этот проект идеально подходит как для начинающих. . .
Как создать свою первую игру в стиле Doom на Unreal Engine
InfoMaster 15.01.2025
Разработка шутера от первого лица в стиле классического Doom представляет собой увлекательное путешествие в мир игрового программирования, где сочетаются творческий подход и технические навыки. . . .
Параллельное программировани­е: основные технологии и принципы
InfoMaster 15.01.2025
Введение в параллельное программирование Параллельное программирование представляет собой фундаментальный подход к разработке программного обеспечения, который позволяет одновременно выполнять. . .
Как написать микросервис на C# с Kafka, MediatR, Redis и GitLab CI/CD
InfoMaster 15.01.2025
В современной разработке программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот подход позволяет разделить сложную систему. . .
Что такое CQRS и как это реализовать на C# с MediatR
InfoMaster 15.01.2025
Концепция CQRS и её роль в современной разработке В современном мире разработки программного обеспечения архитектурные паттерны играют ключевую роль в создании масштабируемых и поддерживаемых. . .
Как настроить CI/CD с Azure DevOps
InfoMaster 15.01.2025
CI/ CD, или непрерывная интеграция и непрерывное развертывание, представляет собой современный подход к разработке программного обеспечения, который позволяет автоматизировать и оптимизировать процесс. . .
Как настроить CI/CD с помощью Jenkins
InfoMaster 15.01.2025
Введение в CI/ CD и Jenkins В современной разработке программного обеспечения непрерывная интеграция (CI) и непрерывная доставка (CD) стали неотъемлемыми элементами процесса создания качественных. . .
Как написать микросервис на Go/Golang с Kafka, REST и GitHub CI/CD
InfoMaster 14.01.2025
Определение микросервиса, преимущества использования Go/ Golang Микросервис – это архитектурный подход к разработке программного обеспечения, при котором приложение состоит из небольших, независимо. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru