Напишите программу которая сортирует массив и находит количество различных чисел в нем
Перейти к содержимому

Напишите программу которая сортирует массив и находит количество различных чисел в нем

Напишите программу которая сортирует массив и находит количество различных чисел в нем

Вопрос по информатике:

Напишите программу, которая сортирует массив и находит количество различных чисел в нем.
Используйте алгоритм быстрой сортировки.
Пример:
Массив:
5 3 4 2 1 6 3 2 4
После сортировки:
1 2 2 3 3 4 4 5 6
Различных чисел: 5

Трудности с пониманием предмета? Готовишься к экзаменам, ОГЭ или ЕГЭ?

Воспользуйся формой подбора репетитора и занимайся онлайн. Пробный урок — бесплатно!

  • 11.11.2015 22:26
  • Информатика
  • remove_red_eye 4086
  • thumb_up 16
Ответы и объяснения 1

Var i, j, h, a, z, n, k: integer;
array1: array [1..100] of integer;
array2: array [1..100] of integer;
procedure swap(var x, y: integer);
var t: integer;
begin
t := x; x := y; y := t
end;
begin
randomize;
write(‘Введите значение N: ‘);
readln(n);
for i := 1 to n do
begin
array1[i] := random(10) + 1;
end;
for i := 1 to n do
begin
writeln(‘Массив:’);
for i := 1 to n do write(array1[i], ‘ ‘);
writeln;
end;
for h := 1 to n — 1 do
for z := 1 to n — h do
if array1[z] > array1[z + 1] then
swap(array1[z], array1[z + 1]);
for i := 1 to n do
begin
writeln(‘После сортировки:’);
for i := 1 to n do write(array1[i], ‘ ‘);
writeln;
end;
for i:=1 to n do
begin
k := 0;
for j := 1 to n do
if array1[i] array1[j] then k:=k+1;
if k = n — 1 then array2[i] := array1[i];
end;
for i := 1 to n do
if array2[i] > 0 then a := a + 1;
writeln(‘Различных чисел: ‘, a);
end.

  • 12.11.2015 03:03
  • thumb_up 4
Знаете ответ? Поделитесь им!
Как написать хороший ответ?

Чтобы добавить хороший ответ необходимо:

  • Отвечать достоверно на те вопросы, на которые знаете правильный ответ;
  • Писать подробно, чтобы ответ был исчерпывающий и не побуждал на дополнительные вопросы к нему;
  • Писать без грамматических, орфографических и пунктуационных ошибок.

Этого делать не стоит:

  • Копировать ответы со сторонних ресурсов. Хорошо ценятся уникальные и личные объяснения;
  • Отвечать не по сути: «Подумай сам(а)», «Легкотня», «Не знаю» и так далее;
  • Использовать мат — это неуважительно по отношению к пользователям;
  • Писать в ВЕРХНЕМ РЕГИСТРЕ.
Есть сомнения?

Не нашли подходящего ответа на вопрос или ответ отсутствует? Воспользуйтесь поиском по сайту, чтобы найти все ответы на похожие вопросы в разделе Информатика.

Трудности с домашними заданиями? Не стесняйтесь попросить о помощи — смело задавайте вопросы!

Информатика — наука о методах и процессах сбора, хранения, обработки, передачи, анализа и оценки информации с применением компьютерных технологий, обеспечивающих возможность её использования для принятия решений.

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

// PascalABC.NET 3.1, сборка 1239 от 08.05.2016
begin
var names:array[1..2,1..5] of string:=
((‘Саша’,’Женя’,’Таня’,’Лена’,’Вася’),
(‘Александр’,’Евгений’,’Татьяна’,’Елена’,’Василий’));
var name:=ReadlnString(‘Введите краткое имя:’);
var p:=0;
for var i:=1 to 5 do
if name=names[1,i] then begin p:=i; break end;
if p>0 then Writeln(names[2,p])
else Writeln(‘Я вас не знаю!’)
end.

<u><em>Тестовое решение</em></u>
Введите краткое имя: Лена
Елена

Python Урок 7. Массивы в Питоне: продолжение (алгоритмы)

import random # подключение библиотеки from random import randint n=10; x=5 mas = [randint(1,10) for i in range(n)] # инициализируем массив i = 0 while i < n and mas[i] != x: # если элемент не равен i += 1 if i < n: print ( "mas[", i, "]=", x, sep = "" ) else: print ( "Не нашли!" )

import random from random import randint n=10;x=5 mas = [randint(1,10) for i in range(n)] for i in range (n): if mas[i] == x: nomer = i break if nomer >= 0: print ( "mas[", nomer, "]=", x, sep = "" ) else: print ( "Не нашли!" )

В данном случае в переменной nomer сохраняется номер элемента массива с найденным значением.

Но на языке Python цикл for обладает уникальным свойством: у него есть блок else, который выполняется в том случае, если в цикле не применился оператор break.

import random from random import randint n=10;x=5 mas = [randint(1,10) for i in range(n)] nomer = -1 for i in range (n): if mas[i] == x: print ( "mas[", i, "]=", x, sep = "" ) break else: print ( "Не нашли!" )

Поиск минимального или максимального элемента

import random from random import randint mas = [randint(1,10) for i in range(n)] MaxEl = mas[0] for i in range(1,n): if mas[i] > MaxEl: MaxEl = mas[i] print (MaxEl)

В переменной MaxEl сохранится максимальный элемент массива.

import random from random import randint mas = [randint(1,10) for i in range(n)] MaxEl = max (mas) print ( MaxEl )

Сортировка массива в Python

Метод Пузырька

Сортировку массива в python будем выполнять методом Пузырька:

import random from random import randint mas = [randint(1,10) for i in range(n)] for i in range(n): print(mas[i],sep="") print(" ") for i in range(n-1): for j in range(n-2, i-1 ,-1): if mas[j+1] < mas[j]: mas[j], mas[j+1] = mas[j+1], mas[j] for i in range(n): print(mas[i],sep="")

Быстрая сортировка массива

Данную сортировку еще называют quick sort или сортировка Хоара (по имени разработчика — Ч.Э. Хоар).

import random from random import randint # процедура def qSort ( A, nStart, nEnd ): if nStart >= nEnd: return L = nStart; R = nEnd X = A[(L+R)//2] while L <= R: while A[L] < X: L += 1 # разделение while A[R] > X: R -= 1 if L <= R: A[L], A[R] = A[R], A[L] L += 1; R -= 1 qSort ( A, nStart, R ) # рекурсивные вызовы qSort ( A, L, nEnd ) N=10 A = [randint(1,10) for i in range(N)] print(A) # вызов процедуры qSort ( A, 0, N-1 ) print(‘отсортированный’, A)

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *