Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сортировка двумерного массива по столбцу, как быть с одинаковыми элементами? 
:(
    Опции темы
Michael.de
Дата 31.7.2009, 19:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 346
Регистрация: 22.3.2005
Где: Deutschland

Репутация: 2
Всего: 9



Всем привет smile

Ситуация:
Идёт обращение к БД. Она возвращает массив (JavaScript), на основании которого создаётся таблица (HTML). При клике по столбцу идёт сортировка строк (не важно: по возрастанию или убыванию, лексикографически или численно). В столбце могут находиться повторяющиеся значения.

Вопрос: по какому принципу можно отсортировать строки, значения которых в сортируемом столбце одинаковы?
P.S. Код пока не нужен... только мысли smile
PM MAIL   Вверх
Itsys
Дата 31.7.2009, 19:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1338
Регистрация: 21.1.2008
Где: г. Москва

Репутация: 12
Всего: 34



Есть много способов сортировки, код напишешь сам  smile 
PM MAIL WWW Skype   Вверх
diadiavova
Дата 31.7.2009, 19:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 11
Всего: 142



Цитата(Michael.de @  31.7.2009,  20:03 Найти цитируемый пост)
по какому принципу можно отсортировать строки, значения которых в сортируемом столбце одинаковы?

Видимо по значению какого-нибудь другого столбца.


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
Michael.de
Дата 31.7.2009, 20:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 346
Регистрация: 22.3.2005
Где: Deutschland

Репутация: 2
Всего: 9



Цитата(Itsys @  31.7.2009,  19:22 Найти цитируемый пост)
Есть много способов сортировки, код напишешь сам smile
Эээ... у меня уже всё отсортировано. Но что делать со строками, значения которых в сортируемом столбце одинаковы?
до сортировки (по имени):
    1 Вася Иванов 1985
    2 Петя Петров 1991
    3 Федя Жуков 1979
    4 Вася Петров 1980
    5 Петя Иванов 2001
и после:
    1 Вася Иванов 1985
    4 Вася Петров 1980
    2 Петя Петров 1991
    5 Петя Иванов 2001
    3 Федя Жуков 1979
но что делать со строками 1+4 и 2+5 - их же можно поменять местами smile

Цитата(diadiavova @  31.7.2009,  19:45 Найти цитируемый пост)
Видимо по значению какого-нибудь другого столбца.
Да, как вариант. Или их вообще не трогать smile

PM MAIL   Вверх
diadiavova
Дата 31.7.2009, 20:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 11
Всего: 142



Цитата(Michael.de @  31.7.2009,  21:06 Найти цитируемый пост)
Да, как вариант. Или их вообще не трогать 

Зависит от задачи: если не принципиально, то можно и не трогать, но, поскольку вопрос был "по какому принципу", то я и дал, как мне кажется, наиболее очевидный ответ. smile 


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
SkyCoder
Дата 31.7.2009, 20:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичёк
*


Профиль
Группа: Участник
Сообщений: 77
Регистрация: 26.6.2006
Где: 3-я планета от со лнца

Репутация: нет
Всего: нет



По сути сортировка относится к интерфейсу пользователя. Ну так и смотри с точки зрения пользователя.
Так что на мой взгляд надо сортировать по последней сортировке.
т.е. 
Если пользователь сначала отсортировал по возрастанию даты рождения, а потом по фамилиям, он сможет найти Ивановых отсортированных по дате рождения.
PM MAIL   Вверх
Се ля ви
Дата 31.7.2009, 22:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Java/SOAрхитектор
****


Профиль
Группа: Модератор
Сообщений: 2016
Регистрация: 5.6.2004
Где: place without tim e and space

Репутация: 5
Всего: 127



в сортировочной функции возвращаешь ноль. Это приводит к тому, что в отношении одинаковых с точки зрения критерия сортировки элементов работает предыдущая сортировка (а вначале - изначальная сортировка). Это косвенно создаёт возможность настраивать сортировку по нескольким столбцам.


--------------------
  )
 (
[_])
проф. блог

Кролики думали, что занимаются любовью, а на самом деле их просто разводили...
PM MAIL WWW Skype GTalk   Вверх
SkyCoder
Дата 2.8.2009, 04:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичёк
*


Профиль
Группа: Участник
Сообщений: 77
Регистрация: 26.6.2006
Где: 3-я планета от со лнца

Репутация: нет
Всего: нет



не совсем понял про ноль..
Но вообщем - да , досточно сортировать не исходный список, а список после последней сортировки.
PM MAIL   Вверх
diadiavova
Дата 2.8.2009, 04:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доктор Зло(диагност, настоящий, с лицензией и полномочиями)
****


Профиль
Группа: Модератор
Сообщений: 5821
Регистрация: 14.8.2008
Где: В Коньфпольте

Репутация: 11
Всего: 142



Цитата(SkyCoder @  2.8.2009,  05:10 Найти цитируемый пост)
не совсем понял про ноль..

Функция Array.sort принимает в качестве аргумента функцию, являющуюся критерием сортировки, если она возвращает ноль, то сравниваемые элементы имеют одинаковый приоритет при сортировке.


--------------------
Хочешь получить мудрый совет - читай подписи участников форумов.
Злой доктор Щасзаболит smile
PM   Вверх
dstorm81
Дата 3.8.2009, 07:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


бездельник
***


Профиль
Группа: Завсегдатай
Сообщений: 1178
Регистрация: 18.1.2006
Где: (16RU)

Репутация: 20
Всего: 39



http://forum.vingrad.ru/forum/topic-104050/view-all.html
тут было, примеры скриптов, если вдруг надо будет


--------------------
на форуме с 8.12.2002 (http://forum.vingrad.ru/index.php?act=ST&f=10&t=4874&st=0#)

PM   Вверх
SkyCoder
Дата 5.8.2009, 18:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичёк
*


Профиль
Группа: Участник
Сообщений: 77
Регистрация: 26.6.2006
Где: 3-я планета от со лнца

Репутация: нет
Всего: нет



dstorm81, Спасибо!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0661 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.