Algorithms in JavaScript

Brought by: 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
Go to course

Algorithms in JavaScript

Brought by: egghead.io

  • egghead.io
  • Paid
  • English
  • Certificate Not Available
  • Available at any time
  • All
  • N/A
8.1.2PHP Version883msRequest Duration2MBMemory UsageGET en/courses/{slug}Route
    • Booting (556ms)
    • Application (324ms)
    • 1 x Booting (63.03%)
      556.41ms
      1 x Application (36.71%)
      324.08ms
      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 en/courses/{slug}
      middleware
      web, localize:en
      controller
      App\Http\Controllers\CourseController@show
      as
      en.courses.show
      namespace
      prefix
      /en
      where
      file
      app/Http/Controllers/CourseController.php:17-35
      6 statements were executed9.62ms
      • select * from `courses` where `slug_en` = 'algorithms-in-javascript' limit 1
        8.25ms/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-19 10:09:26' where `id` = 2116
        570μs/app/Http/Controllers/CourseController.php:21corspedia
        Metadata
        Bindings
        • 0. 2025-06-19 10:09:26
        • 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)
        190μ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)
        160μ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
        200μ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
        250μ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
        qA1dhCcQJXbr1ZlAScmHOAvF7UZipaO1s8PasAwb
        locale
        en
        _previous
        array:1 [ "url" => "https://www.corspedia.com/en/courses/algorithms-in-javascript" ]
        _flash
        array:2 [ "old" => [] "new" => [] ]
        PHPDEBUGBAR_STACK_DATA
        []
        path_info
        /en/courses/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 => "216.73.216.151" ] "cdn-loop" => array:1 [ 0 => "cloudflare; loops=1" ] "x-forwarded-proto" => array:1 [ 0 => "https" ] "x-forwarded-for" => array:1 [ 0 => "216.73.216.151" ] "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 => "95223b19dc4be828-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" => "216.73.216.151" "HTTP_CDN_LOOP" => "cloudflare; loops=1" "HTTP_X_FORWARDED_PROTO" => "https" "HTTP_X_FORWARDED_FOR" => "216.73.216.151" "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" => "95223b19dc4be828-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" => "33640" "REMOTE_ADDR" => "172.71.255.136" "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" => "/en/courses/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" => 1750327766.3042 "REQUEST_TIME" => 1750327766 ]
        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 => "Thu, 19 Jun 2025 10:09:27 GMT" ] "set-cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6IkJjMXpSdU9PeGM0dk15TTV3L2tiV2c9PSIsInZhbHVlIjoiMkh4aFVDZ2FFbTlmUzd2ME4va3FwREQ5R2VGd0V6WjRKQStWakRVUlRObTRzUnVyQTd1cktiOVVENzJYeXV3RVNERmJxT0ZSLzZDbkZMejNqUU1jaksvM1dMNUFPb2cvaDBwdnYxamFUekNRL2Q3N3QxamxldmtqSHdaeE4wWUYiLCJtYWMiOiI4NWZjZWYxNTI0M2E1OTE5M2QzMGNhN2M5ZjIyZDY0ZGJkYjkxNzIzNWFhY2FkNDlhYTU5ZjBlYWJhM2JkODM5IiwidGFnIjoiIn0%3D; expires=Thu, 19 Jun 2025 12:09:27 GMT; Max-Age=7200; path=/; samesite=laxXSRF-TOKEN=eyJpdiI6IkJjMXpSdU9PeGM0dk15TTV3L2tiV2c9PSIsInZhbHVlIjoiMkh4aFVDZ2FFbTlmUzd2ME4va3FwREQ5R2VGd0V6WjRKQStWakRVUlRObTRzUnVyQTd1cktiOVVENzJYeXV3RVNERmJxT" 1 => "laravel_session=eyJpdiI6IlVBL0NwdnUrSjRvN0loMGgxVjdyMlE9PSIsInZhbHVlIjoiZ09PV0NFaTNrc1J3Um1iMGNleG9QMXRnQmp3T3hzQll4Z2wzZU9ZY01OcUV2dTNlaXVoZ24ra0xPSHRrekFOdDkxQ2ZlbHZyeXlOd2hFYVJnTWgxU2hTRy9kRUVNd2tLVVRDZDhhVHRJNFlNeXRVL0pkOEgzSHFXdmNSMmRQeWEiLCJtYWMiOiI3NzFiY2IxMWE1OWI3NjdkZjYzMWZmYjQwZTEzYmExMjRlZDRjN2NmYjYwN2EzNDk5OTBjY2UwMDM4ZDllMWU4IiwidGFnIjoiIn0%3D; expires=Thu, 19 Jun 2025 12:09:27 GMT; Max-Age=7200; path=/; httponly; samesite=laxlaravel_session=eyJpdiI6IlVBL0NwdnUrSjRvN0loMGgxVjdyMlE9PSIsInZhbHVlIjoiZ09PV0NFaTNrc1J3Um1iMGNleG9QMXRnQmp3T3hzQll4Z2wzZU9ZY01OcUV2dTNlaXVoZ24ra0xPSHRrekFOdDkx" ] "Set-Cookie" => array:2 [ 0 => "XSRF-TOKEN=eyJpdiI6IkJjMXpSdU9PeGM0dk15TTV3L2tiV2c9PSIsInZhbHVlIjoiMkh4aFVDZ2FFbTlmUzd2ME4va3FwREQ5R2VGd0V6WjRKQStWakRVUlRObTRzUnVyQTd1cktiOVVENzJYeXV3RVNERmJxT0ZSLzZDbkZMejNqUU1jaksvM1dMNUFPb2cvaDBwdnYxamFUekNRL2Q3N3QxamxldmtqSHdaeE4wWUYiLCJtYWMiOiI4NWZjZWYxNTI0M2E1OTE5M2QzMGNhN2M5ZjIyZDY0ZGJkYjkxNzIzNWFhY2FkNDlhYTU5ZjBlYWJhM2JkODM5IiwidGFnIjoiIn0%3D; expires=Thu, 19-Jun-2025 12:09:27 GMT; path=/XSRF-TOKEN=eyJpdiI6IkJjMXpSdU9PeGM0dk15TTV3L2tiV2c9PSIsInZhbHVlIjoiMkh4aFVDZ2FFbTlmUzd2ME4va3FwREQ5R2VGd0V6WjRKQStWakRVUlRObTRzUnVyQTd1cktiOVVENzJYeXV3RVNERmJxT" 1 => "laravel_session=eyJpdiI6IlVBL0NwdnUrSjRvN0loMGgxVjdyMlE9PSIsInZhbHVlIjoiZ09PV0NFaTNrc1J3Um1iMGNleG9QMXRnQmp3T3hzQll4Z2wzZU9ZY01OcUV2dTNlaXVoZ24ra0xPSHRrekFOdDkxQ2ZlbHZyeXlOd2hFYVJnTWgxU2hTRy9kRUVNd2tLVVRDZDhhVHRJNFlNeXRVL0pkOEgzSHFXdmNSMmRQeWEiLCJtYWMiOiI3NzFiY2IxMWE1OWI3NjdkZjYzMWZmYjQwZTEzYmExMjRlZDRjN2NmYjYwN2EzNDk5OTBjY2UwMDM4ZDllMWU4IiwidGFnIjoiIn0%3D; expires=Thu, 19-Jun-2025 12:09:27 GMT; path=/; httponlylaravel_session=eyJpdiI6IlVBL0NwdnUrSjRvN0loMGgxVjdyMlE9PSIsInZhbHVlIjoiZ09PV0NFaTNrc1J3Um1iMGNleG9QMXRnQmp3T3hzQll4Z2wzZU9ZY01OcUV2dTNlaXVoZ24ra0xPSHRrekFOdDkx" ] ]
        session_attributes
        0 of 0
        array:5 [ "_token" => "qA1dhCcQJXbr1ZlAScmHOAvF7UZipaO1s8PasAwb" "locale" => "en" "_previous" => array:1 [ "url" => "https://www.corspedia.com/en/courses/algorithms-in-javascript" ] "_flash" => array:2 [ "old" => [] "new" => [] ] "PHPDEBUGBAR_STACK_DATA" => [] ]