я уже был здесь и мне помогали с циклом для задания рендомного числа для массива. и с проблемой по поводу едита. мне довольно таки быстро помогли и дали знаний на последующий шаг, за что я во многом благодарен. Вообще в будущем у меня в планах использовать делфи чтоб объединить бардак у меня на жостком, я просто гитарист больше чем программист и нужно навести порядок в бесконечных сохранены текстах и аккордах с табами. а программу такую не найти, попробую написать ее сам. но сейчас я учусь (хотя живя жизнь мы все время учимся =) ). Ну тогда начнем: Гугл помог, но что-то помощь его не очень понятна, доверие к википедии имеет монополию и вот что я вижу, псевдокод.. хм, хорошо, а на делфи как адаптировать?
Код:
Пример реализации алгоритма простого двухпутевого слияния на псевдокоде:
function mergesort(m)
var list left, right, result
if length(m) ≤ 1
return m
else
middle = length(m) / 2
for each x in m up to middle
add x to left
for each x in m after middle
add x to right
left = mergesort(left)
right = mergesort(right)
result = merge(left, right)
return result
end if
Есть несколько вариантов функции merge(), наиболее простой вариант может выглядеть так:
function merge(left,right)
var list result
while length(left) > 0 and length(right) > 0
if first(left) ≤ first(right)
append first(left) to result
left = rest(left)
else
append first(right) to result
right = rest(right)
end if
if length(left) > 0
append left to result
if length(right) > 0
append right to result
return result
function mergesort(m) - (м) это массив?