|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
21.09.2007, 18:15 | #1 |
Дельфист
Форумчанин
Регистрация: 14.08.2007
Сообщений: 317
|
Сортировка массива
Здравствуйте!!!
Дайте пожалуйста код сортировки массива по возрастанию/убыванию и дайте пожалуйта ссылки где описываютя алгоритмы сортировки
ICQ-465033557
WINDOWS CE THE BEST |
21.09.2007, 21:02 | #2 |
Форумчанин
Регистрация: 24.06.2007
Сообщений: 351
|
Двухмерный или одномерный массив-?
Если сортировки одномерных то вот тут разные виды: Sortirivki.rar Я не маюсь бездельем, я от него тащусь!
|
22.09.2007, 20:04 | #3 |
Форумчанин
Регистрация: 22.09.2007
Сообщений: 540
|
Ну вот, смотри... Это всякие виды сортировок.
------------------------------------------------- begin for i:=1 to K do begin for j:=1 to K-1 do begin if a[k+1]<a[k] then begin z:=a[k+1]; a[k+1]:=a[k]; a[k]:=z; end; end; end; end. -------------------------------------------------------- for i := 2 to n do begin Tmp := A[i]; j := i-1; while (A[j]>Tmp)and(j>1) do begin A[j+1] := A[j]; Dec(j) end; A[j+1] := Tmp; end; -------------------------------------------------- Step := 1; while Step < N div 9 do Step := Step*3 + 1; Repeat for k := 1 to Step do begin i := Step + k; while i <= N do begin x := A^[i]; j := i - Step; while (j >= 1) and (A^[j]>x) do begin A^[j + Step] := A^[j]; Dec(j); end; A^[j + Step] := x; Inc(i, Step); end; end; Step := Step div 3; until Step=0; ------------------------------------------------------ for i := N downto 2 do begin MaxIndex := 1; for j := 2 to i do if A[j]>A[MaxIndex] then MaxIndex := j; Tmp := A[i]; A[i] := A[MaxIndex]; A[MaxIndex] := Tmp; end; -------------------------------------------------------------- procedure Sort; procedure QuickSort(a, b: Longint); Var x: Longint; {индекс «среднего» элемента} begin x := элемент_выбранный_средним; ...деление на три части: 1) A[a]..A[i]; 2) A[i+1]..A[j-1]; 3) A[j]..A[b] if i>a then QuickSort(a, i); if b>j then QuickSort(j, b); end; begin Sort(1, N); end; ------------------------------------------------------- procedure Sort; procedure QuickSort(a, b: Longint); Var x: Longint; {индекс «среднего» элемента} begin i := A[l]; y := A[(l+r)div 2]; j := A[r]; if i<=y then if y<=j then x := (l+r)div 2 else if i<=j then x := r else x := l else if y>=j then x := (l+r)div 2 else if i>=j then x := r else x := l; i := l; j := r; x := A[x]; repeat while A[i] < x do Inc(i); while x < A[j] do Dec(j); if i <= j then begin y := A[i]; A[i] := A[j]; A[j] := y; Inc(i); Dec(j); end; until i > j; if l-j<i-r then begin if l < j then QuickSort(l, j); if i < r then QuickSort(i, r); end else begin if i < r then Sort(i, r); if l < j then Sort(l, j); end; end; begin QuickSort(1, N); end; |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Сортировка массива С/С++ | Dagget | Помощь студентам | 1 | 16.07.2008 12:18 |
Сортировка массива | Dagmaria | Общие вопросы C/C++ | 5 | 05.07.2008 00:23 |
Сортировка массива | Kraven | Общие вопросы Delphi | 3 | 25.06.2008 18:22 |
Сортировка массива...? | Roberto | Помощь студентам | 2 | 11.04.2008 13:32 |
Сортировка массива | MuRdErDoLL | Помощь студентам | 2 | 20.12.2006 00:58 |