Форум программистов, компьютерный форум, киберфорум
Free Pascal
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.66/29: Рейтинг темы: голосов - 29, средняя оценка - 4.66
0 / 0 / 0
Регистрация: 04.04.2015
Сообщений: 3
1

Найти три минимальных элемента массива

11.10.2015, 12:45. Показов 5931. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Запишите алгоритм,который находит три минимальных элемента массива.
Какие элементарные операции в нем можно выделить?
Оцените количество этих операций.
Определить сложность алгоритма.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.10.2015, 12:45
Ответы с готовыми решениями:

Найти три минимальных элемента массива
Найти три минимальных элемента массива и их порядковый номер. Программу я написал и она вроде...

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

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

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

4
Программист
307 / 182 / 176
Регистрация: 05.12.2013
Сообщений: 684
Записей в блоге: 5
12.10.2015, 01:06 2
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Цитата Сообщение от happylina Посмотреть сообщение
Запишите алгоритм,который находит три минимальных элемента массива.
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
const
  n = 10;
var
  a: array[1..n] of integer;
  mins: array[1..3] of integer;
  i,j,idx: integer;
  first: boolean;
begin
  {ввод массива}
  randomize;
  writeln('Введите массив (', n, ' элементов)');
  for i:=1 to n do begin
    write('A[', i, '] = ');
    {readln(a[i]); {для ввода с клавиатуры}
    a[i]:=random(100);
    writeln(a[i]); {для заполнения рандомом}
  end;
  
  {поиск трех минимальных элементов}
  for j:=1 to 3 do begin
    first:=true;
    for i:=1 to n do
      if first or (a[i]<mins[j]) then begin
        mins[j]:=a[i];
        idx:=i;
        first:=false;
      end;
    a[idx]:=maxint; {это чтобы исключить элемент из рассмотрения}
  end;
  
  {вывод результата}
  write('Минимальные элементы: ');
  for i:=1 to 3 do
    write(mins[i], ' ');
 
end.
0
Эксперт Pascal/Delphi
2386 / 1298 / 1492
Регистрация: 29.08.2014
Сообщений: 4,661
12.10.2015, 13:34 3
отсортировать не быстрее?

Добавлено через 15 минут
не, не быстрее...
0
Программист
307 / 182 / 176
Регистрация: 05.12.2013
Сообщений: 684
Записей в блоге: 5
12.10.2015, 14:08 4
Зависит от ограничений. Если числа в массиве не очень большие, то сортировка методом подсчета дает линейную сложность.
0
Эксперт Pascal/Delphi
2386 / 1298 / 1492
Регистрация: 29.08.2014
Сообщений: 4,661
12.10.2015, 14:50 5
так тоже практически к линейному сводится
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
...
if n>3 then begin
  for i:=1 to 3 do mins[i]:=c[i];
  for i:=2 to n do
    if c[i]<=mins[3] then begin
      k:=3;
      for j:=2 downto 1 do if c[i]<=mins[j] then k:=j;
      for j:=3 downto k+1 do mins[j]:=mins[j-1];
      mins[k]:=c[i];
    end;
  write('Минимальные элементы: ');
  for i:=1 to 3 do write(mins[i], ' ');
end else   for i:=1 to n do write(c[i], ' ');
...
Добавлено через 1 минуту
Код
Running "c:\fpc\2.6.4\bin\i386-win32\3xmin.exe "
Введите массив (20000000 элементов)
поиск трех минимальных элементов1
17:33:36:0
Минимальные элементы: 0 0 0
поиск трех минимальных элементов2
17:33:36:52
Минимальные элементы: 0 0 0
17:33:36:67
Добавлено через 16 минут
Написал не правильно: for i:=1 to 3 do mins[i]:=c[i];
for i:=2 to n do
Надо так:
Pascal
1
2
for i:=1 to 3 do mins[i]:=maxint;
  for i:=1 to n do
0
12.10.2015, 14:50
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.10.2015, 14:50
Помогаю со студенческими работами здесь

Найти три минимальных элемента в Д-ой строке матрицы
Здравствуйте, такая вот задача. Дано матрицу А. Найти 3 минимальных элемента матрицы в ряду Д...

Найти три минимальных элемента в предпоследнем столбце матрицы
1. Найти три минимальных элемента в предпоследнем столбце матрицы A #include &lt;iostream.h&gt;...

Найти три минимальных элемента в дереве и массиве (Доработать код)
Ребята кто нибудь мог бы помочь с кодом на с++. Я написал прогу которая ищет 3 минимальных...

Найти три минимальных числа массива
Помогите пожалуиста!! Ввести массив из 10 чисел. Найти три минимальных числа этого массива. ...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru