Wstęp do algorytmów i struktur danych

所在平台: Udemy

课程主页: https://www.udemy.com/course/wstep-do-algorytmow-i-struktur-danych/

课程评论:没有评论

第一个写评论        关注课程

课程简介

Coursera 课程:算法与数据结构导论 本课程旨在帮助学习者掌握独立于编程语言解决问题的能力,并深入了解各种算法及其在具体编程语言中的应用。通过本课程的学习,您将获得解决编程问题的强大工具和能力。 **课程大纲:** * **算法入门与表示方法:** * 理解算法的定义、组成部分。 * 学习不同的算法表示方法,重点关注流程图。 * **算法时间复杂度分析:** * 学习评估算法效率。 * 理解对数概念。 * 学习两种查找算法:线性查找和二分查找。 * 掌握大 O 记法。 * 了解多种算法复杂度。 * **数据结构:数组与列表(自定义实现):** * 深入理解数组和列表作为数据结构的概念。 * 分析每种结构的优缺点。 * 动手实现列表,加深理解。 * **递归函数:** * 掌握非常重要的递归函数概念,这对后续深入学习编程至关重要。 * **排序算法:** * **冒泡排序:** 学习一种简单直观的排序方法。 * **快速排序:** 深入理解并实现一种高效排序算法。 * **数据压缩算法:** * **霍夫曼编码:** 学习一种简单易实现的无损压缩算法,了解其原理。 * **算术编码:** 了解一种早期由 Peter Elias 发明的编码方法。 * **数据结构:栈与关联数组:** * 理解栈(Stack)的概念。 * 了解基于哈希函数的关联数组(Associative Array)。 * **数据结构:队列与图的广度优先搜索(BFS):** * 学习队列(Queue)数据结构。 * 掌握图的广度优先搜索(BFS)算法,并动手实现。 * **图的深度优先搜索(DFS):** * 学习图的另一种遍历方式:深度优先搜索(DFS)算法。

课程评论(0条)

课程详情

Zanim zaczniemy rozwiązywać jakiś problem, musimy mieć pomysł na jego rozwiązanie. Tutaj rodzi się potrzeba ujednolicenia sposobu zapisu toku rozumowania związanego z programem komputerowym. Podczas realizacji tego przedmiotu nauczysz się tworzyć rozwiązanie problemu w sposób niezależny od języka programowania, a jednocześnie poznasz wiele algorytmów z przykładami użycia w konkretnych językach programowania. Ta wiedza i umiejętności zaowocują mocno przede wszystkim w ten sposób, że dadzą Ci narzędzia i kompetencje do rozwiązywania problemów/zadań programistycznych.Lista zagadnień:Wprowadzenie do algorytmów, rodzaje zapisu algorytmówDowiemy się, czym jest algorytm, z czego się składa. Poznamy sposoby zapisu algorytmu. Omówimy każdy z nich, natomiast uwagę skupimy na schemacie blokowym.Rodzaje złożoności czasowej algorytmuNowa porcja wiedzy o algorytmach. Więc zaczynamy od szacowania efektywności algorytmu, poznamy pojęcie logarytmu, poznamy dwa sposoby wyszukiwania (prosty i binarny), poznamy notację dużego O i poznamy kilka złożoności algorytmu.Struktury danych tablice, lista - własna implementacjaPoznamy dokładniej czym jest tablica i lista, oczywiście w odniesieniu do struktur danych. Poznamy mocne i słabe stron każdej z nich. Żeby dobrze zrozumieć działanie listy, napiszemy własną jej implementacje.Funkcje rekurencyjnePrzed nami bardzo ważne zagadnienie, którym jest funkcja rekurencyjna. Zrozumienie tego zagadnienia jest bardzo ważne w dalszej nauce programowania.Sortowanie bąbelkoweJedną z metod sortowania jest sortowanie bąbelkowe. W tym materiale przedstawię jak wygląda ta prosta metoda sortowania.Sortowanie szybkieDrugą metodą sortowania którą poznamy będzie sortowanie szybkie. Jeśli chodzi o sortowanie szybkie wymaga ono trochę więcej czasu, żeby zrozumieć na czym to polega. Ważne jest zrozumienie tej metody, dlatego napiszemy jej implementacje.Algorytm Huffmana - kompresjaKodowanie Huffmana - jedna z najprostszych i łatwych w implementacji metod kompresji bezstratnej. Została opracowana w 1952 roku przez Amerykanina Davida Huffmana. Poznamy tę metodę właśnie w tym materiale.Kompresja arytmetycznaKodowanie arytmetyczne - metoda kodowania została wynaleziona przez Petera Eliasa około 1960 roku. Warto zobaczyć co można ukryć w liczbie z przedziału 1-0:)Struktury StosZobaczymy czym jest stos oraz dowiemy się co to jest tablica asocjacyjna oparta o funkcję skrótów.Kolejka, przeszukiwanie grafu wszerz (BFS)Nadszedł czas na kolejkę, ale nie taką do kasy biletowej w kinie tylko strukturę danych o takiej nazwie. Dodatkowo poznamy algorytm przeszukiwania grafu wszerz (BFS). Napiszemy oczywiście implementacje tego algorytmu.Grafy - przeszukiwanie w głąb (DFS)Ostatnim zagadnieniem będzie algorytm przeszukiwania grafu w głąb (DFS). Jest to inna forma przechodzenia przez wszystkie wierzchołki grafu.

课程标签

0人关注该课程

主题相关的课程