Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/18: Рейтинг темы: голосов - 18, средняя оценка - 4.89
2 / 2 / 0
Регистрация: 06.06.2013
Сообщений: 73
1

Сортировка массива. Не пойму суть

25.07.2013, 19:31. Показов 3423. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добры вечер, господа. Предчувствую заброс тапками, но все же, прошу сделать скидку - в JS я, пока что, полный ноль. В одном мануале, приведен листинг сортировки массива Mass = [ "единица1", Единый", "Единица2" ] без учета регистра.
Javascript
1
2
3
4
5
6
7
8
9
10
11
function f_sort(Str1, Str2) { // Сортировка без учета регистра
   var Str1_1 = Str1.toLowerCase(); // Преобразуем к нижнему регистру
   var Str2_1 = Str2.toLowerCase(); // Преобразуем к нижнему регистру
   if (Str1_1>Str2_1) return 1;
   if (Str1_1<Str2_1) return -1;
   return 0;
}
 
var Mass = [ "единица1", "Единый", "Единица2" ];
Mass.sort(f_sort); // Имя функции указывается без скобок
document.write(Mass.join(", ")); // "единица1, Единица2, Единый"
Не могу понять самой сути - математики того, как сортировка происходит. Приведу свои мысленные рассуждения, а Вы поправьте меня, где не так.
Функция f_sort(Str1, Str2) должна получать из внешней программы две параметра, т.к. сортируется массив, получается, что сначала этими параметрами служат нулевой и первый элемент массива.
Далее, (эта часть мне понятна) строки преобразуются к нижнему регистру и сравниваются. Сравнение в алфавитном порядке. т.е. при сравнении "единица1" и "единый" - "единый" должен стать после "единица1", отсюда Str1_1<Str2_1 и функция возвращает в основную программу -1.
И вот здесь то меня и накрывает. Куда сохраняется эта 1 (или в обратном случае -1)? Как это приводит к перестановке элементов массива? Какая следующая пара элементов массива проходит сравнение и как при этом уже отсортированные элементы взаимодействуют с сортируемым?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.07.2013, 19:31
Ответы с готовыми решениями:

Сортировка выбором! НЕ ПОЙМУ КАК ЕГО СДЕЛАТЬ
Народ помогите мне надо сделать сортировку методом выбора! что надо сделать! я создал базу данных...

Не пойму как работает скрипт массива!
Всем привет. Не пойму логику работы этого скрипта. :(:( &lt;? $zapros = mysql_query(&quot;select * FROM...

Не пойму где происходит переполнение массива
Я ошибся не переполнение, а выход за пределы #include &lt;iostream&gt; #include &lt;locale.h&gt; #include...

Не пойму почему выходит за границы массива
Собсна,писал программу по удалению строк и столбцов из матрицы,на пересечении которых стоит ноль....

3
9 / 9 / 5
Регистрация: 25.07.2013
Сообщений: 35
25.07.2013, 21:28 2
Никуда не сохраняется... это функция возвращает значение, в зависимости от этого ставится первый или второй элемент.
0
супермизантроп
Эксперт JS
3941 / 2979 / 692
Регистрация: 18.04.2012
Сообщений: 8,625
25.07.2013, 21:58 3
сама математика сортировки массива - она "вшита" в метод sort ()
и здесь вы её не увидите
честно говоря, я и не знаю, каким именно математическим способом реализована сортировка в методе sort () - перестановками, пузырьком, слиянием, двоичным деревом или ещё как

в качестве аргумента в этот метод вы передаёте собственное правило сортировки,
т.е. де-факто не функцию передаёте, коя сортирует,
а всего лишь оформленное в виде функции условие, как вам надо отсортировать
1
2 / 2 / 0
Регистрация: 06.06.2013
Сообщений: 73
25.07.2013, 23:12  [ТС] 4
Ага, значит я не совсем верно понимал значение термина "возвращает". Теперь начинает все проясняться, спасибо за ответы!
0
25.07.2013, 23:12
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.07.2013, 23:12
Помогаю со студенческими работами здесь

Не пойму в чём ошибка. Выделение части массива
Суть программы заключается в том, чтобы выделить часть массива между определенными символами. В...

Не пойму как реализовать такой массив=) (формирование массива сумм)
Заданий масив C(30). сложить программу формирования масива сумм: ...

Сортировка массива целых чисел A(n) по убыванию(используя метод обменная сортировка)
Помогите написать программу для сортировки массива целых чисел A(n) по убыванию(используя метод...

Быстрая сортировка(сортировка Хоара). Отсортировать фрагмент массива
Мне нужно отсортировать фрагмент массива, расположенный между первым и последним отрицательным...

Сортировка массива и сортировка строка матрицы
1) Создание массива А с помощью рандома с целыми от -100 до 100 и вывести его на экран....

Одномерные массивы. Вставка, удаление элементов массива. Перестановка элементов массива. Сортировка массива методом пузырька
Помогите пожалуйста! Дан массив, состоящий из N букв латинского алфавита а) Заполнить массив...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru