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

Сортировка двумерного массива методом быстрой сортировки

19.06.2016, 16:52. Показов 2080. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите, нужна программа для сортировки двумерного массива методом быстрой сортировки используя stringgrid
5 строк, 8 столбцов (числа случайные, не заданы)
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.06.2016, 16:52
Ответы с готовыми решениями:

Сортировка двумерного массива методом Выборки
Помогите (опять), нужна программа для сортировки двумерного массива, (теперь уже) методом выборки...

Сортировка двумерного массива методом пузырька
Delphi.Дана матрица размером NxM. Упорядочить ее строки по возрастанию их первых элементов. Нужно...

Метод быстрой сортировки массива
Помогите пожалуйста. Как мне вызвать процедуру быстрой сортировки через кнопку? А главное чтобы...

Метод быстрой сортировки массива в RadioGroup
Как сделать в RadioGroup сортировку по возрастанию элементов массива методом быстрой сортировки?

2
Почетный модератор
64299 / 47594 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
19.06.2016, 18:43 2
Лучший ответ Сообщение было отмечено AntRamow как решение

Решение

Delphi
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
72
73
74
75
76
77
78
79
80
81
82
const m=5;
      n=8;
var
  Form1: TForm1;
  x: array[1..m,1..n]of integer;
 
implementation
 
{$R *.dfm}
//процедура быстрой сортировки
procedure sort(l,r:integer);
//l-левый конец массива,r-правый конец
var
  i,j,x1,y1,c: integer;
begin
  i:=l;
  j:=r;
  c:=round ((l+r)/2);//средний элемент
  x1:=x[(c-1) div n+1,(c-1) mod n+1];
  repeat
   while x[(i-1) div n+1,(i-1)mod n+1]<x1 do inc(i);//пока левый больше среднего, подвигаем левый край вправо
   while x[(j-1) div n+1,(j-1)mod n+1]>x1 do dec(j);//пока правый меньше среднего, подвигаем левый вправо
   if i<=j then {если левый и правый срослись}
    begin
     y1:=x[(i-1)div n+1,(i-1)mod n+1];
     x[(i-1)div n+1,(i-1)mod n+1]:=x[(j-1) div n+1,(j-1)mod n+1];//меняем левый и правый
     x[(j-1) div n+1,(j-1)mod n+1]:=y1;
     inc(i); //левый вправо
     dec(j); //правый влево
    end;
  until i>j;//конец одной перестановки
  if l<j then sort(l,j);//рекурсивно сортируем
  if i<r then sort(i,r);//или левую или правую части
end;
 
procedure TForm1.FormCreate(Sender: TObject);
begin
//зададим некоторые параметры таблиц
with StringGrid1 do
 begin
  fixedCols:=0;
  fixedRows:=0;
  defaultColwidth:=30;
  colcount:=n;
  rowcount:=m ;
  scrollBars:=ssBoth;
 end;
with StringGrid2 do
 begin
  fixedCols:=0;
  fixedRows:=0;
  defaultColwidth:=30;
  colcount:=n;
  rowcount:=m ;
  scrollBars:=ssBoth;
 end;
end;
 
procedure TForm1.Button1Click(Sender: TObject);
var i,j:integer;
begin
StringGrid1.RowCount:=m;
StringGrid1.ColCount:=n;
StringGrid2.RowCount:=m;
StringGrid2.ColCount:=n;
for i:=1 to m do
for j:=1 to n do
 begin
  x[i,j]:=random(100);
  StringGrid1.Cells[j-1,i-1]:=inttostr(x[i,j]);
 end;
end;
 
procedure TForm1.Button2Click(Sender: TObject);
var i,j,k,p:integer;
    t:real;
begin
sort(1,m*n);
for i:=1 to m do
for j:=1 to n do
StringGrid2.Cells[j-1,i-1]:=inttostr(x[i,j]);
end;
1
0 / 0 / 0
Регистрация: 20.01.2016
Сообщений: 35
19.06.2016, 18:59  [ТС] 3
Огромнейшее вам спасибо))
0
19.06.2016, 18:59
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.06.2016, 18:59
Помогаю со студенческими работами здесь

Отсортировать строки двумерного массива вещественных чисел методом быстрой сортировки
отсортировать строки двумерного массива вещественных чисел по значению элемента первого столбца ...

Сортировка заданного массива методом быстрой сортировки
Помогите пожалуйста разработать программу, выполняющую сортировку заданного массива методом быстрой...

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

Сортировка одномерного массива вещественных чисел по убыванию методом быстрой сортировки
Написать программу для сортировки одномерного массива вещественных чисел по убыванию методом...


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

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

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