0 / 0 / 1
Регистрация: 18.11.2011
Сообщений: 129
1

Задача на сортировку простым выбором

27.11.2011, 10:38. Показов 1263. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Вот такая задача
Дана целочисленная матрица размером MхN. Пусть для каж-дой строки матрицы определена функция f(a), равная сумме составных чисел, являющихся элементами строки a. Упоря-дочить (переставить) строки матрицы по неубыванию в со-ответствии со следующим критерием: строка a считается «больше» строки b, если f(a) > f(b). Используйте алгоритм простого выбора.

ВНИМАНИЕ: в задаче необходимо составить программу, реализующую алгоритм сортировки. На экран выводятся исходный и результирующий массивы. Алгоритм сортировки оформить в виде процедуры.

Может у кого-нибудь есть наметки на подобную задачу? ЗАРАНЕЕ СПАСИБО

Составила вот что:
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
const n=3; m=4;
type
    index=1..n;
    element = array[1..m] of real;
    mas = array[index] of element;
 
function f(s:element):real;
var
    i:integer;
    y:real;
begin
    y:=0;
    for i:=1 to m do   y:=y+s[i];
    f:=y
end;
 
procedure sort(var a:mas);
var i,j,k:index;
      x:element;
begin
    for i:=1 to n-1 do
         begin
         k:=i;
         x:=a[i];
         for j:=i+1 to n do
              if f(a[j])< f(x) then begin k:=j; x:=a[j] end;
         a[k]:=a[i];
         a[i]:=x
         end;
end;

Как вывести матрицу начальную и упорядоченную на экран???
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.11.2011, 10:38
Ответы с готовыми решениями:

Сортировка простым выбором
Нужно поставить счётчик обменов (мой считает неправильно), не могу разобраться, очень прошу...

Реализуйте сортировку простым слиянием
10.Реализуйте сортировку простым слиянием.

Сортировка простым выбором
Отсортировать четные элементы массива с помощью простого выбора. ВНИМАНИЕ!!! Входные данные...

Сортировка простым выбором
uses crt; var mas:array of integer; i,b:integer; begin clrscr; randomize; for i:=1 to 20 do ...

2
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32830 / 21168 / 8147
Регистрация: 22.10.2011
Сообщений: 36,428
Записей в блоге: 8
27.11.2011, 15:41 2
Цитата Сообщение от Viwwna Посмотреть сообщение
Как вывести матрицу начальную и упорядоченную на экран???
Написать процедуру для вывода матрицы и вызвать ее до сортировки и после:

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
const
   n = 3;
   m = 4;
type
   index = 1 .. n;
   element = array[1 .. m] of integer;
   mas = array[index] of element;
 
function f(s : element) : integer;
var
   i, j, sum : integer;
   divisors : integer;
begin
    sum := 0;
    for i := 1 to m do
    begin
       divisors := 0;
       for j := 2 to trunc(sqrt(s[i])) do
          if s[i] mod j = 0 then inc(divisors);
 
       if divisors > 0 then
          sum := sum + s[i];
    end;
    f := sum
end;
 
procedure sort(var a:mas);
var
   i, j, k : index;
   x : element;
begin
   for i := 1 to n - 1 do
   begin
      k := i;
      x := a[i];
      for j := i + 1 to n do
         if f(a[j]) < f(x) then
         begin
            k := j; x := a[j]
         end;
 
      a[k] := a[i];
      a[i] := x
   end;
end;
 
procedure print(const a : mas);
var i, j : integer;
begin
   for i := 1 to n do
   begin
      for j := 1 to m do write(a[i, j]:4);
      writeln;
   end;
end;
 
const
   a : mas =
   (
      ( 2,  3,  4,  5), // f =  4
      (10, 11, 12, 15), // f = 37
      (17, 19, 23, 19)  // f =  0
   );
 
begin
   writeln('До:');
   print(a);
   sort(a);
   writeln('После:');
   print(a);
end.
(у тебя неправильно находился результат функции F, нужно не сумму всех элементов, а сумму всех составных - т.е., не простых чисел, присутствующих в строке)
1
0 / 0 / 1
Регистрация: 18.11.2011
Сообщений: 129
27.11.2011, 16:55  [ТС] 3
Цитата Сообщение от UI Посмотреть сообщение
(у тебя неправильно находился результат функции F, нужно не сумму всех элементов, а сумму всех составных - т.е., не простых чисел, присутствующих в строке)
Да, Спасибо ОГРОМНОЕ, Ты прав.....
0
27.11.2011, 16:55
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.11.2011, 16:55
Помогаю со студенческими работами здесь

Сортировка простым выбором
Здравствуйте! Мне нужно осуществить сортировку простым выбором для данного массива a_input=...

Сортировка простым выбором
Сортировка простым выбором собственно. Доработайте пжл. var i,j,k,m,n:integer; a:array of...

Сортировка простым выбором
дан одномерный масив, и мне его нужно сортирывать простым вибором. спасибо.) Добавлено через 17...

Сортировка простым выбором
можете помочь,в чём ошибка? сортировка методом простого выбора - по алгоритму(на си) Код: ...


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

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

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