|
Сортировка по нескольким полям
|
|||
---|---|---|---|
#18+
Здравствуйте. Возник такой вопрос. Допустим есть у меня набор данных Сто строк, 10 колонок. Отсортировать по первой допустим quicksort не проблема А вот как потом отсортировать по втрой, третьей, четвёртой ? С учётом предидущих сортировок? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2019, 13:46 |
|
Сортировка по нескольким полям
|
|||
---|---|---|---|
#18+
При сравнении проверяй все четыре колонки. Если первые равны, то сравнить вторые и т.д. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2019, 13:54 |
|
Сортировка по нескольким полям
|
|||
---|---|---|---|
#18+
Dima TПри сравнении проверяй все четыре колонки. Если первые равны, то сравнить вторые и т.д. так вроде как при quicksort на равенство вообще не сравнивают. Или туплю Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
... |
|||
:
Нравится:
Не нравится:
|
|||
01.02.2019, 23:26 |
|
Сортировка по нескольким полям
|
|||
---|---|---|---|
#18+
Любой из предикатов типа Код: pascal 1.
Можно поставить под инверсию и перевернуть знак на меньше либо равно. Код: pascal 1.
Тогда и сравнение будет участвовать. Впрочем на смысл алгоритма это не влияет. И данный пример - узкий. Он показывает сортировку целых чисел в массиве а у тебя т.н. "строки и колонки". Кстати советую уйти от этой терминологии и использовать объект и класс (тип). А для сравнения нужна функция-компаратор. Которая решает какой объект больше или меньше или равен по рангу. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2019, 00:54 |
|
Сортировка по нескольким полям
|
|||
---|---|---|---|
#18+
sergq, не сравнивают, но в функции сравнения это никто не запрещает сделать в случае равенства по первой, второй, ... колонке ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2019, 00:54 |
|
Сортировка по нескольким полям
|
|||
---|---|---|---|
#18+
sergqDima TПри сравнении проверяй все четыре колонки. Если первые равны, то сравнить вторые и т.д. так вроде как при quicksort на равенство вообще не сравнивают. Или туплю Обычно функция сортировки в качестве одного из параметров получает функцию-компаратор, где прописывается алгоритм сравнения. Например в С ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2019, 08:39 |
|
Сортировка по нескольким полям
|
|||
---|---|---|---|
#18+
kealon(Ruslan)sergq, не сравнивают, но в функции сравнения это никто не запрещает сделать в случае равенства по первой, второй, ... колонке Это что то из этой оперы? https://stackoverflow.com/questions/47030279/quick-sort-with-multiple-keys ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2019, 20:51 |
|
Сортировка по нескольким полям
|
|||
---|---|---|---|
#18+
maytonЛюбой из предикатов типа Код: pascal 1.
Можно поставить под инверсию и перевернуть знак на меньше либо равно. Код: pascal 1.
Тогда и сравнение будет участвовать. Впрочем на смысл алгоритма это не влияет. И данный пример - узкий. Он показывает сортировку целых чисел в массиве а у тебя т.н. "строки и колонки". Кстати советую уйти от этой терминологии и использовать объект и класс (тип). А для сравнения нужна функция-компаратор. Которая решает какой объект больше или меньше или равен по рангу. У меня скорее не строки и колонки и пе объект и класс. У меня скоре raw файл бинарный. Разбитый на блоки (строки) , а внутри блок разбит на «колонки» ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2019, 20:53 |
|
Сортировка по нескольким полям
|
|||
---|---|---|---|
#18+
sergqmaytonЛюбой из предикатов типа Код: pascal 1.
Можно поставить под инверсию и перевернуть знак на меньше либо равно. Код: pascal 1.
Тогда и сравнение будет участвовать. Впрочем на смысл алгоритма это не влияет. И данный пример - узкий. Он показывает сортировку целых чисел в массиве а у тебя т.н. "строки и колонки". Кстати советую уйти от этой терминологии и использовать объект и класс (тип). А для сравнения нужна функция-компаратор. Которая решает какой объект больше или меньше или равен по рангу. У меня скорее не строки и колонки и пе объект и класс. У меня скоре raw файл бинарный. Разбитый на блоки (строки) , а внутри блок разбит на «колонки» Ты можешь называть это сепулькой или кандибобером. Но в форуме программирования, очень продуктивно использовать устоявшуюся терминологию. Поверь мне. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2019, 21:24 |
|
Сортировка по нескольким полям
|
|||
---|---|---|---|
#18+
sergqУ меня скорее не строки и колонки и пе объект и класс. У меня скоре raw файл бинарный. Разбитый на блоки (строки) , а внутри блок разбит на «колонки» Без разницы что там у тебя. Сначала тебе надо сформулировать правило сравнения двух блоков. Записать в виде функции. И только после этого сортировать. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2019, 12:25 |
|
Сортировка по нескольким полям
|
|||
---|---|---|---|
#18+
Автору надо почитать про современное ООП-программирование в Delphi. Вопросы отпадут ИМХО. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2019, 13:04 |
|
Сортировка по нескольким полям
|
|||
---|---|---|---|
#18+
sergq, а что, лексикографическое сравнени сразу 4-х блоков не проходит? как я понял, они равной длины ... |
|||
:
Нравится:
Не нравится:
|
|||
03.02.2019, 20:31 |
|
Сортировка по нескольким полям
|
|||
---|---|---|---|
#18+
sergqkealon(Ruslan)sergq, не сравнивают, но в функции сравнения это никто не запрещает сделать в случае равенства по первой, второй, ... колонке Это что то из этой оперы? https://stackoverflow.com/questions/47030279/quick-sort-with-multiple-keys оно и есть самый последний ответ из этой темы ... |
|||
:
Нравится:
Не нравится:
|
|||
04.02.2019, 08:03 |
|
|
start [/forum/topic.php?fid=16&msg=39769034&tid=1339995]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
171ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
others: | 13ms |
total: | 273ms |
0 / 0 |