Javascript - функция за сортиране на масив, главен ИТ

По подразбиране метод на сортиране сортира масива по азбучен ред, защото той представлява всяка стойност на елемент на масив като низ с помощта на метод ToString ().







Например, сортиране на масива, състояща се от цифрите:

За да сортирате масива, тъй като ние искаме, ние трябва да се напише специална функция и да го давате името като параметър на метода на сортиране.

Но преди да продължим нататък да се създаде функция, нека разгледаме алгоритъм, чрез който метод на сортиране подрежда масива. В действителност, алгоритъмът сортиране е много прост и се състои в повтаряща се сравняват две съседни елементи в масива, които, в зависимост от резултата от сравняване пренаредени (подредени).

Поради това, специалната функция трябва да има 2 параметри. И за предаване на стойностите на тези параметри ще се подреди метод. т.е. параметри, които не са известни. И това не е важно за нас, защото Нашата задача е да се напише един алгоритъм за сравнение на стойностите на тези параметри и въпрос, тъй като в резултат на ценностите, на които метода на сортиране ще определи пренареждате елементите на масив или не.

Т.е. метод на сортиране определя, за да пренаредите елементите или не в зависимост от резултата, който се връща на функцията. Помислете какви стойности трябва да се върнат функция:

  • Ако функцията връща 0, масив от елементи са равни;
  • Ако функцията връща 1 (или по-голямо от 0), това означава, че първият елемент е по-голям от втория масив;
  • Ако функцията връща -1 (или по-малко от 0), това означава, че вторият елемент на масива по-голямо от първото.

След като създадете функция, е необходимо да се премине като параметър на метода на сортиране. Освен това е необходимо да се предава само името на тази функция, без то да бъде сключено в кавички и без skobochek кръг. Това е поради факта, че ние не искаме метод на сортиране обаждане тази функция точно сега, но просто да информира този метод, така че е за да го използвате, когато се сравнява елементите на масива, т.е. как да замени стандартната си функция за сортиране на масива във функцията, дадено му като параметър.







Например, напишете функция за сортиране номера:

По този начин, с помощта на специална функция, можете да получите на метода на сортиране за сортиране на масива до посочения функция в алгоритъма.

Например, цифров масив сортиране в обратен ред:

Да, и аз съм чувал, аз по принцип и не искам много да се рови в принципите на бързото подобно. Просто по някаква причина никога не пиша, че първият аргумент е по-малко от втория, който веднага ще премахне един милион въпроси. Макар че, вероятно, това е така, разбира, в противен случай функцията (N1, N2) (N1-N2), не би имало смисъл)

Аз не знам как да го сравнява, този масив - 99,23,15,44. Той взема сравнява 23 и 13, се връща 1, а след това се сравнява например 23 и 44, се връща -1, и той разбира, че аз искам да, например, във възходящ ред, за да се изгради? Аз не знам какво ще бъде първият елемент-голям от втория, или по-малко от втория. Ето един вариант съм виждал (а, б) (връща-б) тип, което означава едно и сортиране във възходящ ред. Но не мога да се знае предварително, че «за», е по-малко от «б» и ще се върне -1. Или нещо () «а», е винаги по-малко от «б» (по подразбиране)?

Принципът на бърз алгоритъм подреждане е следният. Първо член подкрепа е избран (например нисък). След това, елементите на ляво и дясно на него се сравняват с него. Ако някой от елементите на ляво върху препратката, той се премества в дясно. Същите елементи и Swinging дясната си, но действието се извършва обратното. Т.е. ако по-малко от референтния елемент, той се премества в ляво. Накрая, след като тези манипулации ще се превърне 2 отделената масив. В първия масив (от ляво на подкрепата) ще бъде по-малък от референтните елементи. Втори (вдясно на справка) ще бъде по-голям от референтните елементи. След това всички действия се повтарят отново. Т.е. взето масив от лявата страна на свързващия елемент и това е направено едни и същи. Т.е. дефинирана от члена на подкрепа, а другият се премества спрямо него. Всички тези действия се повтарят рекурсивно до масива не се сортират. Т.е. все още остават парчета масиви, които вече не могат да се делят. След това всичко е свързано, и ще получите сортиран масив.

Ти не знаеш принципа на алгоритъма е достатъчно да се определят условията, при които един от членовете е преместен отдясно, а другият отляво. За тази цел е необходимо и функция с два параметъра. В него трябва да се определят условията, при които някои елементи JacaScript ще се движат от дясно (> 1) или наляво (<1).
Например: