On-line: Andrey, PSP, гостей 0. Всего: 2 [подробнее..]
АвторСообщение
администратор




Пост N: 3619
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 11.10.13 16:09. Заголовок: Подскажите с сортировкой массива


 
Proc main
local ams:={}
local i
aadd(ams,"10_2012")
aadd(ams,"02_2013")
aadd(ams,"11_2012")
aadd(ams,"12_2012")
aadd(ams,"01_2013")

asort(ams,,,{|x,y| x>y})
for i=1 to len(ams)
? ams
next
wait
return



Нужно что бы массив был отсортирован в следующем порядке
10_2012
11_2012
12_2012
01_2013
02_2013

что то делал когда то и забыл как ;)


Спасибо: 0 
ПрофильЦитата Ответить
Ответов - 3 [только новые]





Пост N: 16
Зарегистрирован: 27.07.10
ссылка на сообщение  Отправлено: 11.10.13 16:26. Заголовок: Вариант: ... asort(a..


Вариант:
... 
asort(ams,,,{|x,y| (substr(x,4,4)+left(x,2))<(substr(y,4,4)+left(y,2))})
...

Выдаёт:

10_2012
11_2012
12_2012
01_2013
02_2013

Спасибо: 0 
ПрофильЦитата Ответить
администратор




Пост N: 3620
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 11.10.13 16:39. Заголовок: Vladimir Спасибо ! ..


Vladimir
Спасибо !
Выкрутился так
asort(ams,,,{|x,y| tc(x)<tc(y)})

Func tc(c)
local ret
ret:=stod(right(c,4)+left(c,2)+"01")
return ret

Спасибо: 0 
ПрофильЦитата Ответить



Пост N: 28
Зарегистрирован: 16.12.09
ссылка на сообщение  Отправлено: 29.05.15 23:14. Заголовок: Решения для выхода и..


Решения для выхода из положения конечно можно найти и не одно.

Однако при этом существенно замедляется скорость обработки массива.

Я для того, чтоб заменить asort(), чтоб ф-ция не переставляла элементы с одинаковыми ключами,

тренировался на двумерном массиве размером ~70000 элементов

На моем компе он сортируется asort() за 0.9 секундl,

а массив в 560000 элементов asort() сортирует за 9 секунд.

Это и было ориентиром.

Функцию написать можно, но получить ее производительность такую же как у asort()

программируя на Harbour не получится.







Спасибо: 0 
ПрофильЦитата Ответить
Ответ:
1 2 3 4 5 6 7 8 9
большой шрифт малый шрифт надстрочный подстрочный заголовок большой заголовок видео с youtube.com картинка из интернета картинка с компьютера ссылка файл с компьютера русская клавиатура транслитератор  цитата  кавычки моноширинный шрифт моноширинный шрифт горизонтальная линия отступ точка LI бегущая строка оффтопик свернутый текст

показывать это сообщение только модераторам
не делать ссылки активными
Имя, пароль:      зарегистрироваться    
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 604
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет