Сортировка методом выбора
В массиве находят минимальный элемент и он переставляется на первое место. Например, если нашли что a(5) наименьший, то a(1) и a(5) меняются местами. Далее ведётся поиск маименьего в оставшейся часть массива, начиная с a(2) и опять меняется с найденным и т.д. до конца массива.
dim as integer a(10)
dim as integer i, min, j
for i=1 to 10
a(i)=int(rnd()*99+1)
next i
for i=1 to 10-1
min=i
for j=i+1 to 10
if a(j)< a(min) then min=j
next j
if min<> i then swap a(i),a(min)
next i
sleep
добавим процедуру которая будет выводить массив и отмечать другим цветом элементы которые необходимо переставить
sub prnta(byval t1 as integer, byval t2 as integer)
dim as integer i
for i=1 to 10
if i=t1 or i=t2 then color 12 else color 15
print a(i);
next i
print
end sub
const as integer N=15
dim shared as integer a(N)
dim as integer i, min, j
sub prnta(byval t1 as integer, byval t2 as integer)
dim as integer i
for i=1 to N
if i=t1 or i=t2 then color 12 else color 15
print a(i);
next i
print
end sub
for i=1 to N
a(i)=int(rnd()*99+1)
next i
for i=1 to N-1
min=i
for j=i+1 to N
if a(j)< a(min) then min=j
next j
if min<> i then prnta(i,min):swap a(i),a(min)
next i
prnta(0,0)
sleep
Сортировка методом выбора делает меньше перестановок элементов и меньше сравнений.
Есть вариант двунаправленной сортировки выбором - ведётся поиск не только минимального но и максимального элементов.
✅
Ваш пост поддержали следующие Инвесторы Сообщества "Добрый кит":
spinner, ianboil, strecoza, mishka, sergiy, vako, blange, ovchinnikov, dikaniovs, harhor, la-bella-vita, kilobucks, yurgent71, zlody, oceanotechnic, markvial, andreyprosto, vict0r, gromozeka, drim, gryph0n, ladykosha, retoldname, kvg, oagalakova, sterh, olga-fink, edsaw, dayver, seagull15, bombo, manavendra, lokkie, ili, process, massatela, shafarevich, amalinavia, vsebudethorosho, sansey, izbushka, onur1s, html, vredinka2345, fxmonster, azarovskiy, sinilga, valen-tina, maksh, maryatekun, delectat, prezza, worthless-man, elcpa, karabum, boliwar, wmforum, jpigeon84, archual, alexxela, valdemar777, fatima
Поэтому я тоже проголосовал за него!
dobryj.kit теперь стал Делегатом! Ваш голос важен для всего сообщества!!!
Поддержите нас:
✅🤙 🚀