<bgdev />free

Вход Регистрация

Heap Sort vs Quick Sort vs Merge Sort за Array
4

0 1 2
#13254 (ツ) ФейкПрофил
Създадено на 30.09.2020, видяно: 1833 пъти.

 Индексите по отношение на сортирането не играя никаква роля.

Напротив - индексите са най-важното нещо, ако не искаш да сортираш.

#13255 (ツ) Golden Gega
Създадено на 30.09.2020, видяно: 1828 пъти.
ФейкПрофил
Golden Gega
ФейкПрофил
Golden Gega
johnfound
Golden Gega

order by

Все пак пишем ламерски софтуер - бизнес системи основно, и ползваме, Боже опази!, релационни бази данни.

Всъщност, order by не е сортиране в класическият вид. То реално именно това се получава в реалните проекти - данните по-скоро се събират в готов за употреба правилен ред и просто не възниква нужда да се сортират.

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

ставаше дума за SQL-ското order by

OrderBy може да сортира, аможе и да не сортира. Зависи от това какви индекси имаш.

Това е супер интересно, я ми дай един пример дето имаш order by пък то не сортира по него

Нарича се pipelined order by: https://use-the-index-luke.com/sql/sorting-grouping/indexed-order-by

За рамбо, който не чете английски - общо взето обхождаш редовете в index order, като те там са вече сортирани - демек ходиш по един linked list.

Това което си посочил е работа на оптимизатора, т.е. той преценява че вече няма нужда да сортира result set-а в този частен случай. В случая обаче order by клаузата реално се пропуска, т.е. все едно имаш същото куери без order by

#13256 (ツ) Courvoisier
Създадено на 30.09.2020, видяно: 1825 пъти.
Унуфри

Само в нашият форум order by може да не сортира. Иначе в. нетя е възможно ако нямаш comparer. Верно сте безработни на заплата. За интервю ли да помним алгоритми за сортиране? Щото на нито едно не съм виждал да дават, ни я съм давал.

Толкова ли не са те питали некви жунки? Може би 2-3 пъти са ме питали по интервюта, от около 100, не е много. Но жунките питат.

#13257 (ツ) ФейкПрофил
Създадено на 30.09.2020, видяно: 1825 пъти.

пропускаш факта, че индексите се създават не за да заемат дисково пространство, ами за да ускоряват точно определени (групи от) заявки - и ако имаш заявка с много сортиране то определено ще имаш и съответния индекс, който да го елиминира

частен случай би било да нямаш индекс и да караш базата да сортира като хамалин

#13258 (ツ) ФейкПрофил
Създадено на 30.09.2020, видяно: 1823 пъти.
Courvoisier
Унуфри

Само в нашият форум order by може да не сортира. Иначе в. нетя е възможно ако нямаш comparer. Верно сте безработни на заплата. За интервю ли да помним алгоритми за сортиране? Щото на нито едно не съм виждал да дават, ни я съм давал.

Толкова ли не са те питали некви жунки? Може би 2-3 пъти са ме питали по интервюта, от около 100, не е много. Но жунките питат.

на 100 интервюта ли си ходил ?

#13259 (ツ) Courvoisier
Създадено на 30.09.2020, видяно: 1822 пъти.
ФейкПрофил
Courvoisier
Унуфри

Само в нашият форум order by може да не сортира. Иначе в. нетя е възможно ако нямаш comparer. Верно сте безработни на заплата. За интервю ли да помним алгоритми за сортиране? Щото на нито едно не съм виждал да дават, ни я съм давал.

Толкова ли не са те питали некви жунки? Може би 2-3 пъти са ме питали по интервюта, от около 100, не е много. Но жунките питат.

на 100 интервюта ли си ходил ?

Даже повече. Фирми бол. Последните 4 години не съм ходил на нито едно, though. Но като мид ходех периодично да си вдигна заплатата. Стана досадно като някъде взеха да ми се заяждат, че съм бил джоб хопър.

#13260 (ツ) Golden Gega
Създадено на 30.09.2020, видяно: 1822 пъти.
ФейкПрофил

пропускаш факта, че индексите се създават не за да заемат дисково пространство, ами за да ускоряват точно определени (групи от) заявки - и ако имаш заявка с много сортиране то определено ще имаш и съответния индекс, който да го елиминира

частен случай би било да нямаш индекс и да караш базата да сортира като хамалин

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

#13261 (ツ) ФейкПрофил
Създадено на 30.09.2020, видяно: 1819 пъти.
Courvoisier
ФейкПрофил
Courvoisier
Унуфри

Само в нашият форум order by може да не сортира. Иначе в. нетя е възможно ако нямаш comparer. Верно сте безработни на заплата. За интервю ли да помним алгоритми за сортиране? Щото на нито едно не съм виждал да дават, ни я съм давал.

Толкова ли не са те питали некви жунки? Може би 2-3 пъти са ме питали по интервюта, от около 100, не е много. Но жунките питат.

на 100 интервюта ли си ходил ?

Даже повече. Фирми бол. Последните 4 години не съм ходил на нито едно, though. Но като мид ходех периодично да си вдигна заплатата. Стана досадно като някъде взеха да ми се заяждат, че съм бил джоб хопър.

Аз съм ходил само на 1 :Д Но нещо ми почва да ми писва вече, да еба и короната. Ако я нямаше да съм си бил камшика вече/

#13262 (ツ) Courvoisier
Последно редактирано на 30.09.2020 от Courvoisier, видяно: 1815 пъти.
ФейкПрофил
Courvoisier
ФейкПрофил
Courvoisier
Унуфри

Само в нашият форум order by може да не сортира. Иначе в. нетя е възможно ако нямаш comparer. Верно сте безработни на заплата. За интервю ли да помним алгоритми за сортиране? Щото на нито едно не съм виждал да дават, ни я съм давал.

Толкова ли не са те питали некви жунки? Може би 2-3 пъти са ме питали по интервюта, от около 100, не е много. Но жунките питат.

на 100 интервюта ли си ходил ?

Даже повече. Фирми бол. Последните 4 години не съм ходил на нито едно, though. Но като мид ходех периодично да си вдигна заплатата. Стана досадно като някъде взеха да ми се заяждат, че съм бил джоб хопър.

Аз съм ходил само на 1 :Д Но нещо ми почва да ми писва вече, да еба и короната. Ако я нямаше да съм си бил камшика вече/

И си се вдигнал от жунка до сеньор/лийд/аркитект в тази фирма и заплатата десетократно? Коя е тази фирма, ще дойда при вас? Единствените такива фирми, за които знам са SAP и VMWare. Немат точкамрежа... не ми се минава на джава, но пък може да мина на питон някой ден, ба ли го. Аз не обичам да се пазаря. Отивам кротко и питам за увеличение. Ако ми откажат си пускам сивито и си търся късмета. Като си подам предизвестие обикновено идват да се пазарят, но вече е късно либе за китка. Индоктринираха ме протестантски народи, там цената винаги е финална, няма пазарлък.

Да не си фрилансър фен на корейското? Ако да, май те познавам.

#13263 (ツ) Golden Gega
Създадено на 30.09.2020, видяно: 1815 пъти.
johnfound
Golden Gega

първо select-a прави временен result set, после order by го сортира

Да бе, да. Сега остава да кажеш, че го прави в RAM-а и там го сортира. Естествено, че не работят така базите данни.

Ами сортирането се прави в РАМ-а, просто защото е по-бързо. Сега не се хващай за идеята че се зарежда целия result set, според големината и според доста други неща може и да се зарежда на части. Ако имаш memory-optimized table или съответния еквивалент - те се обработват само в RAM-а и се прави копие на диска/сториджа. Като цяло процеса е доста сложен и зависи от различните сървъри, то това е проблема че обикновено за да достигаш висок пърформанс и въобще да изтискаш ресурсите се иска тясна специализация

#13264 (ツ) Courvoisier
Създадено на 30.09.2020, видяно: 1810 пъти.

ORM-а много дава, много взема. Допреди 3 години въобще не ми пукаше за SQL и съм имал и дейтабейс девове... ама на, налага ми се вече.

#13265 (ツ) ФейкПрофил
Създадено на 30.09.2020, видяно: 1807 пъти.
Да не си фрилансър фен на корейското? Ако да, май те познавам.

Не

#13269 (ツ) |
Създадено на 30.09.2020, видяно: 1795 пъти.
Courvoisier

Кое според вас е по- удачно за сортиране на арей? Heap Sort или Quick/Merge Sort? Да речем, че ако правя хийпсорт на арей, то ще трябва да създам подареи, които харчат доста време. Отбелязвам, не говоря за линкд лист.

Това са простотии, с които се занимавам в свободното си време, за да не забравям алгоритми.

Мисля, че консенсуса е, че quicksort е най-бърз в общия случай. Иначе по-интересен въпрос според мен е дали масива ТРЯБВА да е сортиран или така е по-лесно. :)

#13270 (ツ) Rabin
Създадено на 30.09.2020, видяно: 1788 пъти.

Сичките да ми едете тура, съборили сте ми темата за комунизма.

Пък теми за кози цяла дузина. Макя ви да е жива и здрава!

#13271 (ツ) Courvoisier
Създадено на 30.09.2020, видяно: 1786 пъти.
|

Мисля, че консенсуса е, че quicksort е най-бърз в общия случай. Иначе по-интересен въпрос според мен е дали масива ТРЯБВА да е сортиран или така е по-лесно. :)

Мисловно упражнение rofl Винаги има или. Ако конкатенирам до 3 пъти стринг, да вдигна стринг билдер било по- скъпо, но ако конкатенирам повече било по- евтино (не съм го проверявал, така ми е останало).

#13272 (ツ) Courvoisier
Последно редактирано на 30.09.2020 от Courvoisier, видяно: 1786 пъти.
Rabin

Сичките да ми едете тура, съборили сте ми темата за комунизма.

Пък теми за кози цяла дузина. Макя ви да е жива и здрава!

Може да си напишеш кур спокойно, няма цензура. Ето, пиша КУР и бегам към магазина.

#13273 (ツ) Courvoisier
Създадено на 30.09.2020, видяно: 1785 пъти.

Добре, а драйвери чели ли сте и писали ли сте? Имам някакъв спомен, че хийпсорта имал приложение във файловата система, бил не знам си какво. Макар, че не загрях защо така, нали е дърво всъщност файловата система за мен, но на диск/флаш как е, може и да не е.

#13275 (ツ) johnfound
Последно редактирано на 30.09.2020 от johnfound, видяно: 1776 пъти.
Rabin

Сичките да ми едете тура, съборили сте ми темата за комунизма.

Пък теми за кози цяла дузина. Макя ви да е жива и здрава!

А бе стига мрънка. При някой от ъпдейтите съм качил погрешка версията с ограниченията. Ще го оправя, като се освободя. Няма да изчезне златната ти тема. rofl

Кажи нещо за сортирането.

#13276 (ツ) code2
Създадено на 30.09.2020, видяно: 1760 пъти.
johnfound

Гега, и в моя пост и след това, става въпрос, че SQL-ското "order by" не сортира масиви с класическите алгоритми за сортиране. Просто извлича данните в правилният ред, според някакъв индекс. Реално никъде нямаш масив и после сортиране.

Даже и в случай, че няма подходящ индекс - "order by" първо прави временен индекс и след това извлича данните в нужният ред.

Съставянето на временен индекс си е точно вид сортиране. Няма как да го направиш без алгоритъм за сортиране! Това с двоичното търсене и вместване си е точно вид алгоритъм за сортиране при това далеч от най-оптималните. Просто нямаме копиране на целите обекти, което е техническо облекчение, а не е алгоритмично подобрение.

#13277 (ツ) Евлампи
Създадено на 30.09.2020, видяно: 1753 пъти.
Rabin

съборили сте ми темата за комунизма

Вокс попули - в Рабинова гъзица :)

Но сорт стайл

0 1 2

Heap Sort vs Quick Sort vs Merge Sort за Array
4

AsmBB v3.0 (check-in: a316dab8b98d07d9); SQLite v3.42.0 (check-in: 831d0fb2836b71c9);
©2016..2023 John Found; Licensed under EUPL. Powered by Assembly language Created with Fresh IDE