|
Простейший и быстрейший способ проверки последовательности чисел на монотонность
|
|||
---|---|---|---|
#18+
Монотонная последовательность . Ну, быстрейший, наверное, это через какую-нибудь булевскую переменную. Скажем, сравниваем первые два числа на "больше" и при любом результате - "тру". Затем следующие числа, начиная со второго, сравниваем на "меньше", и если хоть одно сравнение даст истину, то вернуть "фолс". Ну это так, на вскидку. А что предложите вы? Меня интересуют также всякие экзотические варианты с Linq, лямбдами и прочим. И есть ли вообще встроенные функции проверки монотонности последовательности? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2012, 12:06 |
|
Простейший и быстрейший способ проверки последовательности чисел на монотонность
|
|||
---|---|---|---|
#18+
user7320, Общий вариант - так как у Вас, только не "сравниваем на меньше", наверное, а как-то так: Код: c# 1. 2. 3. 4. 5. 6.
Лямбда-выражения тут использовать, ИМХО, довольно странно. Полагаю, можно создать последовательность разностей и применить к ней Any, но не факт, что это удачная идея. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2012, 12:39 |
|
Простейший и быстрейший способ проверки последовательности чисел на монотонность
|
|||
---|---|---|---|
#18+
Для любителей лямбд. Сам бы делал через while ;). В теории можно всю последовательность разбить на отрезки равной длины (за исключением последнего), проверить что конец смежного отрезка меньше(больше) начала следующего и параллельно проверять все эти отрезки в отдельных потоках. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2012, 14:21 |
|
Простейший и быстрейший способ проверки последовательности чисел на монотонность
|
|||
---|---|---|---|
#18+
Ой, я немного ошибся. Но всё равно спасибо. Я забыл уточнить, что последовательнось должна быть СТРОГО монотонной. Тогда код упрощается. Как у вас он изменится тогда? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2012, 22:16 |
|
|
start [/forum/topic.php?fid=20&msg=38062426&tid=1405553]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
63ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
42ms |
get tp. blocked users: |
1ms |
others: | 310ms |
total: | 460ms |
0 / 0 |