|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
20.04.2010, 20:05 | #1 |
Регистрация: 02.11.2009
Сообщений: 6
|
Сортировка массива простыми вставками на Delphi
Дано n целых положительных двузначных чисел. Трактуя каждое число как пару цифр из интервала 0–9, отсортировать их (цифры) по возрастанию.
Дано: 54 12 37 Нужно трактовать эти числа как пара цифр, то есть у такой набор цифр получится: 5 4 1 2 3 7 И эти цифры отсортировать, то есть на выходе у будет: 1 2 3 4 5 7 Как это сделать?
Подумайте, прежде чем подумать...(c) Ежи Лец
|
20.04.2010, 20:18 | #2 |
Delphi Warrior
Старожил
Регистрация: 15.08.2008
Сообщений: 2,502
|
Попробуй создать массив длиной 2N.
И исходный массив перевести в созданный следующим образом Код:
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++ ya.flex-freelance@yandex.ru Icq - 636-954-303 |
20.04.2010, 20:25 | #3 |
любитель-далеко не
Участник клуба
Регистрация: 13.04.2010
Сообщений: 1,156
|
сортировка простыми включениями
Код:
|
21.04.2010, 18:31 | #4 |
Регистрация: 02.11.2009
Сообщений: 6
|
Примерно так:
unit Unit3;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Grids; type TForm3 = class(TForm) StringGrid1: TStringGrid; Button1: TButton; Label1: TLabel; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form3: TForm3; implementation {$R *.dfm} procedure TForm3.Button1Click(Sender: TObject); var i, j, max, buf, k: integer; tmp:integer; a:array [1..3] of integer; b:array [1..6] of integer; begin if length(StringGrid1.cells[i-1,0])<>0 then a[i]:= StrToInt(StringGrid1.Cells[i-1,0]) else a[i]:=0; label1.caption:=''; for i := 1 to 6 do b[i]:=a[i] div 10; //находим первую цифру b[i+1]:=a[i] mod 10; //находим вторую цифру end; begin //сортировка for i:=2 to 6 do begin tmp:=b[i]; j:=i-1; b[1]:=tmp; // установка барьера while tmp<b[j] do begin b[j+1]:=b[j]; // сдвинуть элемент j:=j-1; end; b[j+1]:=tmp // поставить элемент на свое место end; for k:=1 to 6 do Label1.caption:=label1.caption+' '+IntToStr(b[i]); Label1.caption:=label1.caption+#13; //вывод отсортированного массива end. Где у меня ошибки?))
Подумайте, прежде чем подумать...(c) Ежи Лец
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Сортировка вставками | Katyunya | Помощь студентам | 1 | 20.04.2010 08:27 |
Сортировка вставками | blind0482 | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 2 | 02.12.2009 13:15 |
Сортировка вставками | Pti44ka | Помощь студентам | 3 | 17.11.2009 16:49 |
Сортировка вставками двухмерного массива | ponchikpk | Помощь студентам | 6 | 09.03.2009 13:34 |
Сортировка вставками глючит... | Arkuz | Общие вопросы Delphi | 1 | 01.10.2007 21:44 |