Algorithms in JavaScript

بواسطة: egghead.io

Overview

Algorithms are functions that are used to solve a class of problems. Really any piece of code can be a algorithm! There are common algorithm implementations that have proven to accomplish tasks faster than others. However, speed is not measured in seconds but in terms of growth (Big O notation).
This course is designed to teach not only some of those algorithmic approaches to everyday problems but review the pitfalls and optimizations that comes with using them at all. They can be a dynamic and powerful way to optimize calculations, processes, and performing tasks. However, if used incorrectly it can not only destroy a system but can be a nightmare to untangle. Many programming positions today test the knowledge of an individual’s ability to understand and implement algorithms. Let’s work through recursion, sorting, loops, and many more!

Syllabus

  • Introduction to Algorithms in JavaScript
  • Refactor a Loop in JavaScript to Use Recursion
  • Create a Divide and Conquer Function in JavaScript
  • Create a Selection Sort Function in JavaScript
  • Sort a Array with a QuickSort Function in JavaScript
  • Refactor a Linear Search into a Binary Search with JavaScript
  • Solve Complex Problems in JavaScript with Dynamic Programming
  • Implement a Breadth-first Search Function in JavaScript
  • Classify Mystery Items with the K-Nearest Neighbors Algorithm in JavaScript
  • Predict Outcomes with Regression Functions in JavaScript

Taught by

Tyler Clark

Algorithms in JavaScript
الذهاب الي الدورة

Algorithms in JavaScript

بواسطة: egghead.io

  • egghead.io
  • مدفوعة
  • الإنجليزية
  • متاح شهادة
  • متاح في أي وقت
  • الجميع
  • N/A
8.1.2PHP Version278msRequest Duration2MBMemory UsageGET ar/الدورات/{slug}Route
    • Booting (172ms)
    • Application (105ms)
    • 1 x Booting (61.89%)
      172.07ms
      1 x Application (37.87%)
      105.29ms
      14 templates were rendered
      • public.courses.show (resources/views/public/courses/show.blade.php)3bladefile
        Params
        0
        course
        1
        links
        2
        config
      • public.courses.partials.breadcrumbs (resources/views/public/courses/partials/breadcrumbs.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.heading (resources/views/public/courses/partials/heading.blade.php)7bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        classes
      • public.courses.partials.details (resources/views/public/courses/partials/details.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.breadcrumbs (resources/views/public/courses/partials/breadcrumbs.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.courses.partials.heading (resources/views/public/courses/partials/heading.blade.php)7bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        classes
      • public.layouts.main (resources/views/public/layouts/main.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.layouts.partials.meta (resources/views/public/layouts/partials/meta.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.layouts.partials.navbar (resources/views/public/layouts/partials/navbar.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.auth.profile.partials.links (resources/views/public/auth/profile/partials/links.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.auth.profile.partials.link (resources/views/public/auth/profile/partials/link.blade.php)8bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
        6
        route
        7
        title
      • public.layouts.partials.flash-session (resources/views/public/layouts/partials/flash-session.blade.php)6bladefile
        Params
        0
        __env
        1
        app
        2
        errors
        3
        course
        4
        links
        5
        config
      uri
      GET ar/الدورات/{slug}
      middleware
      web, localize:ar
      controller
      App\Http\Controllers\CourseController@show
      as
      ar.courses.show
      namespace
      prefix
      /ar
      where
      file
      app/Http/Controllers/CourseController.php:17-35
      6 statements were executed5.66ms
      • select * from `courses` where `slug_ar` = 'algorithms-in-javascript' limit 1
        4.65ms/app/Http/Controllers/CourseController.php:20corspedia
        Metadata
        Bindings
        • 0. algorithms-in-javascript
        Backtrace
        • 17. /app/Http/Controllers/CourseController.php:20
        • 18. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 19. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 20. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • update `courses` set `visitors` = `visitors` + 1, `courses`.`updated_at` = '2025-06-04 13:22:44' where `id` = 2116
        360μs/app/Http/Controllers/CourseController.php:21corspedia
        Metadata
        Bindings
        • 0. 2025-06-04 13:22:44
        • 1. 2116
        Backtrace
        • 17. /app/Http/Controllers/CourseController.php:21
        • 18. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 19. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 20. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select `id`, `name_en`, `name_ar`, `topic_id`, `slug_en`, `slug_ar` from `subjects` where `subjects`.`id` in (6)
        170μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select `id`, `name_en`, `name_ar`, `slug_en`, `slug_ar` from `topics` where `topics`.`id` in (1)
        140μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 25. /app/Http/Controllers/CourseController.php:23
        • 26. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 27. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 28. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 29. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `providers` where `providers`.`id` in (29) and `providers`.`deleted_at` is null
        160μs/app/Http/Controllers/CourseController.php:23corspedia
        Metadata
        Backtrace
        • 20. /app/Http/Controllers/CourseController.php:23
        • 21. /vendor/laravel/framework/src/Illuminate/Routing/Controller.php:54
        • 22. /vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php:43
        • 23. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:260
        • 24. /vendor/laravel/framework/src/Illuminate/Routing/Route.php:205
      • select * from `html_files` where `html_files`.`id` = 2107 limit 1
        180μs/app/Models/Course.php:84corspedia
        Metadata
        Bindings
        • 0. 2107
        Backtrace
        • 21. /app/Models/Course.php:84
        • 28. view::public.courses.show:29
        • 30. /vendor/laravel/framework/src/Illuminate/Filesystem/Filesystem.php:125
        • 31. /vendor/laravel/framework/src/Illuminate/View/Engines/PhpEngine.php:58
        • 32. /vendor/laravel/framework/src/Illuminate/View/Engines/CompilerEngine.php:72
      App\Models\HtmlFile
      1
      App\Models\Provider
      1
      App\Models\Topic
      1
      App\Models\Subject
      1
      App\Models\Course
      1
        _token
        5nzwWzRza5n1H30do64kPjpqW8T8FIVMCkX5m3Bj
        locale
        ar
        _previous
        array:1 [ "url" => "https://www.corspedia.com/ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/algori...
        _flash
        array:2 [ "old" => [] "new" => [] ]
        PHPDEBUGBAR_STACK_DATA
        []
        path_info
        /ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/algorithms-in-javascript
        status_code
        200
        
        status_text
        OK
        format
        html
        content_type
        text/html; charset=UTF-8
        request_query
        []
        
        request_request
        []
        
        request_headers
        0 of 0
        array:24 [ "cf-ipcountry" => array:1 [ 0 => "US" ] "cf-connecting-ip" => array:1 [ 0 => "13.58.229.242" ] "cdn-loop" => array:1 [ 0 => "cloudflare; loops=1" ] "x-forwarded-proto" => array:1 [ 0 => "https" ] "x-forwarded-for" => array:1 [ 0 => "13.58.229.242" ] "sec-fetch-site" => array:1 [ 0 => "none" ] "accept" => array:1 [ 0 => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" ] "user-agent" => array:1 [ 0 => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" ] "upgrade-insecure-requests" => array:1 [ 0 => "1" ] "sec-ch-ua-platform" => array:1 [ 0 => ""Windows"" ] "sec-ch-ua-mobile" => array:1 [ 0 => "?0" ] "sec-ch-ua" => array:1 [ 0 => ""Chromium";v="130", "HeadlessChrome";v="130", "Not?A_Brand";v="99"" ] "cache-control" => array:1 [ 0 => "no-cache" ] "pragma" => array:1 [ 0 => "no-cache" ] "sec-fetch-dest" => array:1 [ 0 => "document" ] "cf-ray" => array:1 [ 0 => "94a7bda2c9bce1ef-ORD" ] "accept-encoding" => array:1 [ 0 => "gzip, br" ] "priority" => array:1 [ 0 => "u=0, i" ] "sec-fetch-user" => array:1 [ 0 => "?1" ] "sec-fetch-mode" => array:1 [ 0 => "navigate" ] "cf-visitor" => array:1 [ 0 => "{"scheme":"https"}" ] "host" => array:1 [ 0 => "www.corspedia.com" ] "content-length" => array:1 [ 0 => "" ] "content-type" => array:1 [ 0 => "" ] ]
        request_server
        0 of 0
        array:50 [ "USER" => "www-data" "HOME" => "/var/www" "HTTP_CF_IPCOUNTRY" => "US" "HTTP_CF_CONNECTING_IP" => "13.58.229.242" "HTTP_CDN_LOOP" => "cloudflare; loops=1" "HTTP_X_FORWARDED_PROTO" => "https" "HTTP_X_FORWARDED_FOR" => "13.58.229.242" "HTTP_SEC_FETCH_SITE" => "none" "HTTP_ACCEPT" => "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7" "HTTP_USER_AGENT" => "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)" "HTTP_UPGRADE_INSECURE_REQUESTS" => "1" "HTTP_SEC_CH_UA_PLATFORM" => ""Windows"" "HTTP_SEC_CH_UA_MOBILE" => "?0" "HTTP_SEC_CH_UA" => ""Chromium";v="130", "HeadlessChrome";v="130", "Not?A_Brand";v="99"" "HTTP_CACHE_CONTROL" => "no-cache" "HTTP_PRAGMA" => "no-cache" "HTTP_SEC_FETCH_DEST" => "document" "HTTP_CF_RAY" => "94a7bda2c9bce1ef-ORD" "HTTP_ACCEPT_ENCODING" => "gzip, br" "HTTP_PRIORITY" => "u=0, i" "HTTP_SEC_FETCH_USER" => "?1" "HTTP_SEC_FETCH_MODE" => "navigate" "HTTP_CF_VISITOR" => "{"scheme":"https"}" "HTTP_HOST" => "www.corspedia.com" "REDIRECT_STATUS" => "200" "SERVER_NAME" => "corspedia.com" "SERVER_PORT" => "443" "SERVER_ADDR" => "141.95.147.152" "REMOTE_USER" => "" "REMOTE_PORT" => "27870" "REMOTE_ADDR" => "108.162.216.119" "SERVER_SOFTWARE" => "nginx/1.18.0" "GATEWAY_INTERFACE" => "CGI/1.1" "HTTPS" => "on" "REQUEST_SCHEME" => "https" "SERVER_PROTOCOL" => "HTTP/2.0" "DOCUMENT_ROOT" => "/var/www/corspedia/public" "DOCUMENT_URI" => "/index.php" "REQUEST_URI" => "/ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/algorithms-in-javascript" "SCRIPT_NAME" => "/index.php" "CONTENT_LENGTH" => "" "CONTENT_TYPE" => "" "REQUEST_METHOD" => "GET" "QUERY_STRING" => "" "SCRIPT_FILENAME" => "/var/www/corspedia/public/index.php" "PATH_INFO" => "" "FCGI_ROLE" => "RESPONDER" "PHP_SELF" => "/index.php" "REQUEST_TIME_FLOAT" => 1749043364.5626 "REQUEST_TIME" => 1749043364 ]
        request_cookies
        []
        
        response_headers
        0 of 0
        array:5 [ "content-type" => array:1 [ 0 => "text/html; charset=UTF-8" ] "cache-control" => array:1 [ 0 => "no-cache, private" ] "date" => array:1 [ 0 => "Wed, 04 Jun 2025 13:22:44 GMT" ] "set-cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6IlhTVUhzVFNKdFVKNUFDRVF2dnIrTlE9PSIsInZhbHVlIjoiMUYrTlkzdk5mN3VVSldwRGJjeVN4NGsvRzhKS1JtTUE5aWhJaWJLOWZrWVFnMWw1M2laSUlkR21wUDRSVWJLaGNEeS9DaU4wVVF6OG1SdlVFZ1FmNGV5YmNETjNjN0dHRUI5TXlFeUs0YndkRGZqT3N2TldBTjRFNlVzUTBGTWwiLCJtYWMiOiIxNDNlYTRjY2I2ZTI2NTMxODQyMTA2Y2YwOTY1MmE5ZDUzZTJiOWYzOTk1MTVlMGZkYmY4NGU0MzJiZTNhNGQ4IiwidGFnIjoiIn0%3D; expires=Wed, 04 Jun 2025 15:22:44 GMT; Max-Age=7200; path=/; samesite=laxXSRF-TOKEN=eyJpdiI6IlhTVUhzVFNKdFVKNUFDRVF2dnIrTlE9PSIsInZhbHVlIjoiMUYrTlkzdk5mN3VVSldwRGJjeVN4NGsvRzhKS1JtTUE5aWhJaWJLOWZrWVFnMWw1M2laSUlkR21wUDRSVWJLaGNEeS9Da" 1 => "laravel_session=eyJpdiI6IkFFV2o0REprS3A1ZG5oNXU2L1VvSHc9PSIsInZhbHVlIjoiNjRHSVFORjgyOVIwOTNBQzFEQ1Q5TFdybmhFMzljR2JHZFBBQTB2Wmt6d3NWWUtyb1FKaCthZnEzU0JMeGtEbmFpTnB5cVYwbnN3bTJzNVA0WGFycVY4Q2Z2N0dma0VNTWZ3NUhOZGlFWC9uOUdvNTJjSVZsdGNpZFo5bThteHEiLCJtYWMiOiI4ZDM4M2M4ODQ4NzYyOWNiZDg0MjBiNGJmZTMzOGFmMTRiNDVkNjljMGE3M2MzMDY3MGU1MjM4ZWViNjZhYTU2IiwidGFnIjoiIn0%3D; expires=Wed, 04 Jun 2025 15:22:44 GMT; Max-Age=7200; path=/; httponly; samesite=laxlaravel_session=eyJpdiI6IkFFV2o0REprS3A1ZG5oNXU2L1VvSHc9PSIsInZhbHVlIjoiNjRHSVFORjgyOVIwOTNBQzFEQ1Q5TFdybmhFMzljR2JHZFBBQTB2Wmt6d3NWWUtyb1FKaCthZnEzU0JMeGtEbmFp" ] "Set-Cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6IlhTVUhzVFNKdFVKNUFDRVF2dnIrTlE9PSIsInZhbHVlIjoiMUYrTlkzdk5mN3VVSldwRGJjeVN4NGsvRzhKS1JtTUE5aWhJaWJLOWZrWVFnMWw1M2laSUlkR21wUDRSVWJLaGNEeS9DaU4wVVF6OG1SdlVFZ1FmNGV5YmNETjNjN0dHRUI5TXlFeUs0YndkRGZqT3N2TldBTjRFNlVzUTBGTWwiLCJtYWMiOiIxNDNlYTRjY2I2ZTI2NTMxODQyMTA2Y2YwOTY1MmE5ZDUzZTJiOWYzOTk1MTVlMGZkYmY4NGU0MzJiZTNhNGQ4IiwidGFnIjoiIn0%3D; expires=Wed, 04-Jun-2025 15:22:44 GMT; path=/XSRF-TOKEN=eyJpdiI6IlhTVUhzVFNKdFVKNUFDRVF2dnIrTlE9PSIsInZhbHVlIjoiMUYrTlkzdk5mN3VVSldwRGJjeVN4NGsvRzhKS1JtTUE5aWhJaWJLOWZrWVFnMWw1M2laSUlkR21wUDRSVWJLaGNEeS9Da" 1 => "laravel_session=eyJpdiI6IkFFV2o0REprS3A1ZG5oNXU2L1VvSHc9PSIsInZhbHVlIjoiNjRHSVFORjgyOVIwOTNBQzFEQ1Q5TFdybmhFMzljR2JHZFBBQTB2Wmt6d3NWWUtyb1FKaCthZnEzU0JMeGtEbmFpTnB5cVYwbnN3bTJzNVA0WGFycVY4Q2Z2N0dma0VNTWZ3NUhOZGlFWC9uOUdvNTJjSVZsdGNpZFo5bThteHEiLCJtYWMiOiI4ZDM4M2M4ODQ4NzYyOWNiZDg0MjBiNGJmZTMzOGFmMTRiNDVkNjljMGE3M2MzMDY3MGU1MjM4ZWViNjZhYTU2IiwidGFnIjoiIn0%3D; expires=Wed, 04-Jun-2025 15:22:44 GMT; path=/; httponlylaravel_session=eyJpdiI6IkFFV2o0REprS3A1ZG5oNXU2L1VvSHc9PSIsInZhbHVlIjoiNjRHSVFORjgyOVIwOTNBQzFEQ1Q5TFdybmhFMzljR2JHZFBBQTB2Wmt6d3NWWUtyb1FKaCthZnEzU0JMeGtEbmFp" ] ]
        session_attributes
        0 of 0
        array:5 [ "_token" => "5nzwWzRza5n1H30do64kPjpqW8T8FIVMCkX5m3Bj" "locale" => "ar" "_previous" => array:1 [ "url" => "https://www.corspedia.com/ar/%D8%A7%D9%84%D8%AF%D9%88%D8%B1%D8%A7%D8%AA/algorithms-in-javascript" ] "_flash" => array:2 [ "old" => [] "new" => [] ] "PHPDEBUGBAR_STACK_DATA" => [] ]