В этом разделе будет рассмотрен знаменитый алгоритм «быстрой» сортировки, по праву считающийся самым быстрым среди неспециализированных алгоритмов сортировки. Для сравнения мы также рассмотрим один из алгоритмов сортировки, имеющих более низкую эффективность, но и более простых алгоритмов – сортировку вставками.
for i=1 to n-1
for j=i+1 to n
if a(i)<a(j) then
s=a(i): a(i)=a(j):a(j)=s
end if
next
next
Знающий писал(а):А почему бы не воспользоваться таким методом:
- Код: Выделить всё
for i=1 to n-1
for j=i+1 to n
if a(i)<a(j) then
s=a(i): a(i)=a(j):a(j)=s
end if
next
next
Быстрей чем стандартный "пузырёк", я всегда его юзаю.
/me катается по полу .
Это и есть "пузырёк"
do
flag = true
for j=1 to n-1
if a(j)<a(j+1) then
flag=false
s=a(j)
a(j)=a(j+1)
a(j+1)=s
end if
next j
loop until flag = true
Vitaly1 писал(а):Ну если уж вам пузырек злочастный нравится, пожалуйс то, некоторое усовершенствования пузырька:
Илья Васильев писал(а):Что-т я не понял
1. Как ты собираешься за один проход список сортировать
2. При первом удовлетворении условия цикл останавливается
i=0
do
i=i+1
flag= true
for j=i+1 to n
if a(i)<a(j) then
flag=false
s=a(i)
a(i)=a(j)
a(j)=s
end if
next j
loop until flag=true
for i=1 to n-1
flag= true
for j=i+1 to n
if a(i)<a(j) then
flag=false
s=a(i)
a(i)=a(j)
a(j)=s
end if
next j
if flag=true then
exit for
end if
next i
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 50