пирамида медленнее чем "быстрая сортировка".
Цитата
50 000 элементов: QSort - 13, HeapSort - 18
200 000: 58 и 100 соответственно
200 000: 58 и 100 соответственно
---
ЗЫ: спасибо trminator'y за помощь при проведении теста и разбор результатов.
Подраздел FAQ (ЧАВО, ЧАстые ВОпросы) предназначен для размещения готовых рабочих программ, реализаций алгоритмов. Это нечто вроде справочника, он наполнялся в течение 2000х годов. Ваши вопросы, особенно просьбы решить задачу, не пройдут предмодерацию. Те, кто наполнял раздел, уже не заходят на форум, а с теми, кто на форуме сейчас, лучше начинать общение в других разделах. В частности, решение задач — здесь.
Улучшение кода, Уменьшение времени работы программ |
Altair |
Сообщение
#41
|
Ищущий истину Группа: Пользователи Сообщений: 4 825 Пол: Мужской Реальное имя: Олег Репутация: 45 |
Да, все верно,
пирамида медленнее чем "быстрая сортировка". Цитата 50 000 элементов: QSort - 13, HeapSort - 18 200 000: 58 и 100 соответственно --- ЗЫ: спасибо trminator'y за помощь при проведении теста и разбор результатов. -------------------- Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С) |
Dark |
Сообщение
#42
|
Знаток Группа: Пользователи Сообщений: 408 Пол: Мужской Репутация: 3 |
Просто память физически устроена как конденсаторы [в каком бы то не было виде] в виде матрицы, и поэтому для перехода на следующий элемент требуется изменение только RAS цикла, и перехода считывателя на несколько мм а для перехода на ячейку в другом месте RAS и CAS счетчика...
Могу путать где RAS а где CAS - но при больших объемах используемой памяти значение большое... Как нам объясняли, кэш нужен для хранения значения ЯПамяти при обновлении ячеек... -------------------- - Где я?
- Во тьме. - В какой тьме? - Во тьме твоего мозга. |
volvo |
Сообщение
#43
|
Гость |
Обмен значений в переменных.
Для увеличения скорости работы программы при обмене значениями двух чисел a и b вместо конструкции Код {1} a := a + b; b := a - b; a := a - b; или конструкции Код {2} a := a xor b; b := a xor b; a := a xor b; желательно использовать буферную переменную: Код {3} T := a; a := b; b := T; Тестируем скорость выполнения операции обмена: Код const n = 25000; var tm, tm1: longint; i, j: longint; a, b, T: word; begin writeln('n = ', n, ' * ', n); a := 1; b := 12; {----- With plus/minus -----} tm1:= MemL[$0040:$006c]; for i := 1 to n do for j := 1 to n do begin a := a + b; b := a - b; a := a - b; end; tm:= MemL[$0040:$006c]; tm:=tm-tm1; writeln('#1: ',tm); a := 1; b := 12; {----- With xor -----} tm1:= MemL[$0040:$006c]; for i := 1 to n do for j := 1 to n do begin a := a xor b; b := a xor b; a := a xor b; end; tm:= MemL[$0040:$006c]; tm:=tm-tm1; writeln('#2: ',tm); a := 1; b := 12; {----- With T -----} tm1:= MemL[$0040:$006c]; for i := 1 to n do for j := 1 to n do begin t := a; a := b; b := t; end; tm:= MemL[$0040:$006c]; tm:=tm-tm1; writeln('#3: ',tm); end. Результаты тестирования: Цитата n = 10000 * 10000 (100,000,000 обменов) #1: 29 #2: 29 #3: 15 n = 12000 * 12000 (144,000,000 обменов) #1: 41 #2: 42 #3: 22 n = 15000 * 15000 (225,000,000 обменов) #1: 64 #2: 65 #3: 38 n = 25000 * 25000 (625,000,000 обменов) #1: 182 #2: 180 #3: 98 n = 45000 * 45000 (2,025,000,000 обменов) #1: 584 #2: 574 #3: 318 |
Текстовая версия | 22.12.2024 13:24 |