Как да подреди масив във възходящ Форум

Помислете за следните видове масив сортиране във възходящ ред:
  1. Избор на метод (сортиране чрез пряка селекция)
  2. балон метод (метод на мехурчето)
  3. прост метод вложки (сортиране чрез вмъкване)
  4. метод на двукомпонентни вложки (BinaryInsertionSort)
  5. Schell метод (Алгоритъм на Шел)
  6. Метод Уилям Флойд, двоични дървета (пирамидално сортиране)
  7. метод Von Neumann, M (NeumanSort)
  8. Quicksort метод (Quicksort)
х






Забележка: масив, като се започне с индекса се вземат При метода на над сортиране 0 # 33;
1. За да започнете с което трябва да се промени на коефициентите в самата процедура.

1) Сортирайте масива метод на избор възходящ

Това е най-естествения алгоритъм на подреждане. Да приемем, че елементите на 0. I-1 вече подредени, след това сред останалите с т. на N-1 и да намери минималния елемент се променя мястото си с -тата елемент. И така нататък, докато на масива е напълно подредени.

Процедурата за сортиране на масива.

елементи A * стойности масив с индекси от 0 до N-1

* Броят на елементите N

процедура сортиране чрез пряка селекция (Var ARR множество реално ;. конст N. цяло число);

ако m> Агг [J-1] и след това


2) сортиране Възходящо спектър (метод балон)

Процедурата за сортиране на масива.

елементи A * стойности масив с индекси от 0 до N-1

* Броят на елементите N

процедура метод на мехурчето (Var Агг множество реално ;. конст N. цяло число);

защото: = Pred (N) Downto 1 направи

за к: = 0 до Pred (I) направи

ако Агг [й]> = Агг [к + 1] тогава

Мнение редактирано от: Romtek - 08.10.10, 20:04

Съобщ. # 2. 04.09.04, 18:21


3) сортиране на масива възходящ (метод прости инсерции)

Последователно сканирате 1. N-1, а всеки нов елемент вкаран в и на точното място вече в последователен набор на аз-1. на 1. Това се определя чрез сравняване на и в съответствие с подредени елементи от 0. 1-а аз.

Процедурата за сортиране на масива.

елементи A * стойности масив с индекси от 0 до N-1

4) Подреди масива възходящ (метод двоични вмъквания)

Този алгоритъм представлява оптимизирана версия на предишния, разликата е, че при търсене на място, до което е необходимо да вмъкнете елемент във вече подредена съвкупност от 0. а аз-1. определено чрез алгоритъма за разполовяване (оттук и името на алгоритъм "двоичен вмъкване" се разбира като "вмъкване чрез разделяне на половина").

Процедурата за сортиране на масива.







елементи A * стойности масив с индекси от 0 до N-1

* Броят на елементите N

процедура BinaryInsertionSort (Var Агг множество реално ;. N. цяло число);

а б<>С правя

ако ARR [с-1]> ARR [I-1] тогава Е: = C

ако Агг [Ь-1]

Мнение редактирано от: volvo877 - 29.04.08, 07:30

Съобщ. # 3. 04.09.04, 19:03


5) сортиране масив от Shell

Процедурата за сортиране на масива.

елементи A * стойности масив с индекси от 0 до N-1

* Броят на елементите N

Алгоритъм на Шел процедура (Var Агг множество реално ;. N. цяло число);

ако Агг [й]<=Arr[j+g] then c:=False


6) Сортиране Възходящ масив (метод на Уилям Флойд, двоични дървета)

Алгоритъмът се основава на представителството на масива като двоично дърво има специални свойства. Паметта на компютър всички масив елементи са подредени в серия, дървовидната структура се определя както следва: приемем, че аз-тия елемент на масива ( "предшественик") има две деца елементи с индекси 2i + 1 и 2i + 2. Дървото е в нормална форма, ако всеки елемент от прародител на много от техните потомци.

От свойствата на алгоритъма трябва да се отбележи, че тя дава добра стабилна скорост на поръчка (за да п * дневник (п)), независимо от това колко масива работи с и затова се използва в случаите, когато е необходимо да се организират множество гарантирано за кратко време.

Процедурата за сортиране на масива.

елементи A * стойности масив с индекси от 0 до N-1

* Броят на елементите N

процедура пирамидално сортиране (Var Агг множество реално ;. N. цяло число);

а т<>1 правя

ако Агг [к-1]> = Агг [т-1] и след това т: = 1

а т<>0 направя

ако к> и след това т: = 0

ако Агг [к]> Агг [к-1] и след това INC (к);

ако Агг [т-1]> = Агг [к-1] и след това т: = 0

Съобщ. # 4. 04.09.04, 20:20


7) Array сортиране Възходящо (метода на фон Neumann, т)

Алгоритъмът на фон Neumann секвениране масив (сливане алгоритъм за сортиране) се основава на множество сливания вече подредени групи от елементи на масиви. Първоначално, целият масив се разглежда като съвкупност от подредени групи по един елемент на всеки. Сливащите съседни групи получи подредени групи, всяка от които се състои от два елемента (с изключение може би последният от които не е имало двойка група). Освен това, подредени групите стават по-големи, по същия начин, и т.н.

Алгоритъмът дава добри резултати от скоростта, дори и в сравнение с сортиране по двоично дърво. Единственият недостатък - необходимостта от използване на допълнителен набор от същия размер.

Процедурата за сортиране на масива.

елементи A * стойности масив с индекси от 0 до N-1

* Броят на елементите N

процедура NeumanSort (Var Агг множество реално ;. N. цяло число);

Тар = масив [0. Pred (maxint Разделение sizeof (истинско))] на недвижими;

GetMem (Barr, (М - 1) * sizeof (реално));

докато MergeLen

докато I + MergeLen<=n do

ако n2> п след това n2: = N;

докато (i1<=n1)or (i2<=n2) do

докато i2<=n2 do

докато i1<=n1 do

ако Агг [i1-1]> Агг [i2-1] тогава

докато I + MergeLen<=n do

ако n2> п след това n2: = N;

докато (i1<=n1)or (i2<=n2) do

докато i2<=n2 do

докато i1<=n1 do

ако Barr ^ [i1-1]> Barr ^ [i2-1] тогава

FreeMem (Barr, (М - 1) * sizeof (реално));


8) сортиране Възходящо спектър (метод Quicksort)

процедура Quicksort (Var A: Array на дума, L, R: цяло число);

Докато [I]

Докато [J]> P направи

Мнение редактирано от: volvo877 - 18.12.08, 08:49

0 потребители преглеждат тази тема в момента (0 гости и 0 анонимни потребители)

[Изпълнение на скриптове време: 0,1236] [използва 17 запитвания] [Generated: 26.07.17, 17:14 GMT]