81

(13 відповідей, залишених у PHP)

Так що виходить що при великих масивах 2 функція обганяє першу? Треба спробувати з масивом на 10000 елементів.))

82

(13 відповідей, залишених у PHP)

function search(&$array, $n){
           $size = count($array);
        for($i = 0; $i < $size - 1; $i++){ // помилка, ти схитрив на 1 ітерацію) $i < $size;

83

(13 відповідей, залишених у PHP)

function search2($n, &$iterations){        
        $array = array(
        0,1,2,3,4,5,6,7,8,9,10,
        11,12,13,14,15,16,17,18,19,20,
        21,22,23,24,25,26,27,28,29,30,
        31,32,33,34,35,36,37,38,39,40,
        41,42,43,44,45,46,47,48,49,50,
        51,52,53,54,55,56,57,58,59,60,
        61,62,63,64,65,66,67,68,69,70,
        71,72,73,74,75,76,77,78,79,80,
        81,82,83,84,85,86,87,88,89,90,
        91,92,93,94,95,96,97,98,99
        );
        
        
        $quarter = count($array)/4;
        $j = count($array)-1;
        for($a = 0, $b = $a+$quarter, $c = $b+$quarter, $d = $c+$quarter;  $a < $b;){
            if($array[$a] == $n){
                return true;
            }
            if($array[$b] == $n){
                return true;
            }
            
            if($array[$c] == $n){
                return true;
            }
            if($array[$d] == $n){
                return true;
            }
            $a++;
            $b++;
            $c++;
            $d++;
            $iterations++;
        }
        return false;
    }

Максимально можлива кількість ітерацій 25 але швидкість не збільшилася))) Перша функція іноді робить понад 90 ітерацій і в результаті дає таку саму швидкість.)

84

(13 відповідей, залишених у PHP)

for($i = 0;  $i <= $delimiter;){
            if($array[$i] == $n){
                return true;
            }
            if($array[$j] == $n){
                return true;
            }
            $i++;
            $j--;
        }

12000 тисяч наносекунд на елемент.

85

(13 відповідей, залишених у PHP)

Replace написав:

2 функцію можна переписати і досягти такого ж часу як і в 1-й ;)

Напиши як придумав)

86

(13 відповідей, залишених у PHP)

Ідея була в тому щоб зменшити кількість ітерацій у два рази і відповідно отримати у два рази більшу швидкість. Мене здивувало те що системі простіше зробити більше ітерацій ніж витрачати час на додаткові умови у кожній ітерації.

Час на створення масиву всередині функції при кожному виклику не витрачається.

це я знав, просто ніколи не доводилося тестувати такий спосіб передачі параметрів на php.

87

(13 відповідей, залишених у PHP)

Якщо розмістити масив глобально і взяти доступ до нього через $GLOBALS, то швидкість виростає на 50%!!!

$array = array(
        0,1,2,3,4,5,6,7,8,9,10,
        11,12,13,14,15,16,17,18,19,20,
        21,22,23,24,25,26,27,28,29,30,
        31,32,33,34,35,36,37,38,39,40,
        41,42,43,44,45,46,47,48,49,50,
        51,52,53,54,55,56,57,58,59,60,
        61,62,63,64,65,66,67,68,69,70,
        71,72,73,74,75,76,77,78,79,80,
        81,82,83,84,85,86,87,88,89,90,
        91,92,93,94,95,96,97,98,99
        );
        
    function search($n){        
        for($i = 0; $i < 100; $i++){
            if($GLOBALS["array"][$i] == $n){
                return true;
            }
        }
        return false;
    }

Середня швидкість пошуку одоного елемента 0.000008 секунди або 0.008 мілісекунди або 8000 наносекунд або ~125000 елементів в секунду

Якщо передати масив по адресу то швидкість виростає на 300%!!!

$array = array(
        0,1,2,3,4,5,6,7,8,9,10,
        11,12,13,14,15,16,17,18,19,20,
        21,22,23,24,25,26,27,28,29,30,
        31,32,33,34,35,36,37,38,39,40,
        41,42,43,44,45,46,47,48,49,50,
        51,52,53,54,55,56,57,58,59,60,
        61,62,63,64,65,66,67,68,69,70,
        71,72,73,74,75,76,77,78,79,80,
        81,82,83,84,85,86,87,88,89,90,
        91,92,93,94,95,96,97,98,99
        );
        
    function search($n, &$array){        
        for($i = 0; $i < 100; $i++){
            if($array[$i] == $n){
                return true;
            }
        }
        return false;
    }

Середня швидкість пошуку одоного елемента 0.000004 секунди або 0.004 мілісекунди або 4000 наносекунд або ~250000 елементів в секунду

88

(13 відповідей, залишених у PHP)

Вирішив я вигадати задачку для форуму по програмуванні, тай задумав таку штуку. Вирішив написати функцію пошуку елемента у числовому масиві. Початкова функція просто проходила усі елементи по порядку в циклі і порівнювала з шуканим числом. У числовому масиві завжди однакова кількість сталих елементів, їх 100 і вони мають значення від 0 до 99. Потім я порахував час пошуку елементів за допомогою наступного коду.

    //prepare values to search
    $searches = array();
    for($i = 0; $i < $countOfSearches; $i++){
        $searches[] = rand(0, 99);
    } 
    
    $startTime  = microtime(true);
    
    for($j = 0; $j < $countOfSearches; $j++){
        search2($searches[$j]);
    }
    
    $endTime     = microtime(true);
    $diff         = (float) $endTime - $startTime;

    $average     = number_format(($diff/$countOfSearches), 6);
    echo "Середня швидкість пошуку одоного елемента ".$average." секунди";
    echo " або ".($average * 1000)." мілісекунди або ".($average * 1000000000)." наносекунд";

На вихід я завжди отримував сталу середню швидкість пошуку елемента котра була рівною 12000 наносекунд або ~83333 елементів в секунду.

Середня швидкість пошуку одоного елемента 0.000012 секунди або 0.012 мілісекунди або 12000 наносекунд або ~83333 елементів в секунду

Ось доречі сама функція.

function search($n){
        $array = array(
        0,1,2,3,4,5,6,7,8,9,10,
        11,12,13,14,15,16,17,18,19,20,
        21,22,23,24,25,26,27,28,29,30,
        31,32,33,34,35,36,37,38,39,40,
        41,42,43,44,45,46,47,48,49,50,
        51,52,53,54,55,56,57,58,59,60,
        61,62,63,64,65,66,67,68,69,70,
        71,72,73,74,75,76,77,78,79,80,
        81,82,83,84,85,86,87,88,89,90,
        91,92,93,94,95,96,97,98,99
        );
        for($i = 0; $i < 100; $i++){
            if($array[$i] == $n){
                return true;
            }
        }
        return false;
    }

Потім я подумав що швидкість пошуку напряму залежить від кількості ітерацій у пошуковому циклі і вирішив написати функцію котра буде рівно в два рази швидшою. Таке саме завдання я хотів завдати в умові задачі. Я просто написав функцію котра ділить масив на два відрізки і в кожній робить ітерації робить по 2 спроби знайти елемент. Відповідно середня кількість ітерацій зменшилась в два рази але швидкість пошуку не те що не збільшилася, вона зменшилася і стала рівною 13000 наносекунд для знаходження 1 елемента.

function search2($n){
        $array = array(
        0,1,2,3,4,5,6,7,8,9,10,
        11,12,13,14,15,16,17,18,19,20,
        21,22,23,24,25,26,27,28,29,30,
        31,32,33,34,35,36,37,38,39,40,
        41,42,43,44,45,46,47,48,49,50,
        51,52,53,54,55,56,57,58,59,60,
        61,62,63,64,65,66,67,68,69,70,
        71,72,73,74,75,76,77,78,79,80,
        81,82,83,84,85,86,87,88,89,90,
        91,92,93,94,95,96,97,98,99
        );
        $delimiter = count($array)/2;
        $j = count($array)-1;
        for($i = 0;  $i <= $delimiter && $j > $delimiter; $i++){
            if($array[$i] == $n){
                return true;
            }
            if($array[$j] == $n){
                return true;
            }
             $j--;
        }
        return false;
    }

Середня швидкість пошуку одоного елемента 0.000013 секунди або 0.013 мілісекунди або 13000 наносекунд або ~76923 елементів в секунду

Відповідно моя задачка обломалася і замість швидшої функції я отримав повільнішу. Виявилося що функція котра проходить весь масив не вдаючись до розподілів шукає швидше. Чому?

89

(9 відповідей, залишених у Інше)

Думаю має бути плагін який довзоляє редагувати будь-які HTTP заголовки.

90

(4 відповідей, залишених у C++)

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
int main() {
 
    int i, j = 0, len;
    char *str1, *str2, *str3;
    char * malloc(int);
...
    return 0;
}

91

(11 відповідей, залишених у Робота)

vkuchyn написав:

truesupport

Дякую вам за відгук - попрацюю над сайтом :)

Patron

Раджу вам не мислити шаблонно. Якщо вказана тема вам актуальна і вам не шкода 1 години часу - welcome. Інакше - займіться більш важливими справами - вас ніхто не примушує. Будете мати змогу написати свій відгук предметно, про почуте.

Я предметно не відповідаю на безглузді повідомлення. Тут форум програмістів а не форум для розміщування лохотронських оголошень.
п.с. а ви будете диски продавати із записами ваших інфопродуктів?
п.с2 моє шаблонне мислення мене багато разів врятувало від розводу, так що раджу думати хорошими шаблонами/паттернами.

92

(11 відповідей, залишених у Робота)

Так, авжеш

Це ви тіпа вирішили інфобізнесом заробляти? Це тіпа тренінги, курси, вебінари та інші лохотрони?

93

(11 відповідей, залишених у Робота)

vkuchyn а ви вже працевлаштувалися успішно?

94

(65 відповідей, залишених у *nix)

funivan написав:

Почніть з простих команд і записуйте все собі. Наприклад як скачати всі сторінки з сайту через wget  Архівацій і розархівація і т д;)

Я так і роблю. Почав з тих команд які потрібні при роботі веб-програміста. На даний момент я вже сміло використовую такі команди та оператори:
cd - зміна папки
ls - вміст папки
cp - копіювання
cat - лістинг, конкатенація файлів
tar - архіватор,
gunzip - толком не поняв що таке але знаю що може розпакувати архів ***.tar.gz
mysqldump - бекап бази даних
find - пошукова тузла,
chmod - зміна прав,
man - мануал по команді
| - обєднання команд в ланцюжок
> або < - перенаправлення виводу або вводу команд

95

(1 відповідей, залишених у *nix)

Я новачок у середовищі shell/bush і сьогодні не виходило зробити одну річ. Як пошукати усі файли у котрих розширення рhtml або js? Дивився мануал по команді і не зміг допетрати як правильно писати патерн у параметрі -name.
Шукаю phtml так

find ./ -name "*.phtml"

js так

find ./ -name "*.js"

А ось такі команди чомусь не давали результатів:

find ./ -name "*.js|phtml" 
find ./ -name "*.(js|phtml)"
find ./ -name "*.js" "*.phtml"

96

(5 відповідей, залишених у C++)

Assume a fixed set of tab stops, say every n columns.

Думає це означає що передбачається фіксована кількість символів blank замість одного символу tab. І ця кількість напевне має бути рівна n. Але я не впевнений бо ніколи не вирішував схожі задачки.

97

(19 відповідей, залишених у PHP)

щось всі кидають посилання на стандарти але ніхто не поспішає показати як пише код саме він! Я не знаю яких я стандартів дотримуюся але зараз на роботі до мене претензій по коду ще не було. Можу перелічити кілька речей яких я дотримуюся, ними є:
верблюжа нотація при неймінгу (перша буква першого слова маленька, кожна перша буква наступних слів велика);

function filterByName()
var userAddress;


намагаюся називати змінні осмислено;

$postalCode = "10091";
$totalPrice   += (double) $orderItem["price"];


виділяю табуляцією кожен дочірній блок коду зберігаючи ієрархію;

function filterByName($a, $b){
    for($i = 0; $i < 100; $i++){
        if($a != $b) {
            $a = $b;
        }
    }
    $a /= 2;
    for($i = 0; $i < 100; $i++){
        $a *= $b;
    }
}

намагаюся при можливості використовувати скорочений синтаксис умовного оператора;

$c = ($a == $b) ? $b : $a;

в шаблонах намагаюся використовувати скорочений синтаксис оператора echo;

<a href="http://google.com.ua"><?=$ancor?></a>

намагаюся не виводити великі шматки html через оператор echo;

<?php if($good) {?>
<a href="http://google.com.ua"><?=$ancor?></a>
<?php } ?>

Існує ще достатньо багато нюансів яких я дотримуюся але на разі їх не пригадаю. Для ООП свої стандарти, для SQL свої, для javaScript можуть бути свої відмінності у порівнянні із php і т.д.
п.с. я б радив початківцям незнайомим із жодними стандартами почати із стандартів мови Java (Code Conventions for the Java Programming Language).

98

(16 відповідей, залишених у Оцінка сайтів)

Мені цікаво чи ви на фрілансі робили цей сайт чи на фірмі якійсь працюєте? Просто цікаво скільки сьогодні платять за таке. А так все зроблено в принципі акуратно і чисто)))) Як кажуть у  мене в селі "верстка не полізла".

99

(45 відповідей, залишених у Пропоную роботу)

Багато хто просто не дотягує.

Викладіть хоч кілька завдань, дуже хочеться побачити рівень до якого "недотягують" кандидати на посаду програміста.

100

(45 відповідей, залишених у Пропоную роботу)

Гаразд скажемо по іншому Хороших фахівців не вистачає українським компаніям


Повністю погоджуся, але це проблема компаній а не фахівців!!!