Cấu trúc dữ liệu & giải thuật qua ví dụ kinh điển - C++ nền tảng, nâng cao, phỏng vấn xin việc

Cấu trúc dữ liệu & giải thuật qua ví dụ kinh điển - C++ nền tảng, nâng cao, phỏng vấn xin việc

Cấu trúc dữ liệu & giải thuật qua ví dụ kinh điển - C++ nền tảng, nâng cao, phỏng vấn xin việc
Cấu trúc dữ liệu & giải thuật qua ví dụ kinh điển - C++ nền tảng, nâng cao, phỏng vấn xin việc

Giới thiệu về khóa học

  • Giới thiệu về Cấu trúc dữ liệu và thuật toán:

Thực hiện một đề án tin học là chuyển bài toán thực tế thành bài toán có thể giải quyết trên máy tính. Một bài toán thực tế bất kỳ đều bao gồm các đối tượng dữ liệu và các yêu cầu xử lý trên những đối tượng đó. Vì thế, để xây dựng một mô hình tin học phản ánh được bài toán thực tế cần chú trọng đến hai vấn đề :

  • Tổ chức biểu diễn các đối tượng thực tế :

Các thành phần dữ liệu thực tế đa dạng, phong phú và thường chứa đựng những quan hệ nào đó với nhau, do đó trong mô hình tin học của bài toán, cần phải tổ chức , xây dựng các cấu trúc thích hợp nhất sao cho vừa có thể phản ánh chính xác các dữ liệu thực tế này, vừa có thể dễ dàng dùng máy tính để xử lý. Công việc này được gọi là xây dựng cấu trúc dữ liệu cho bài toán.

  • Xây dựng các thao tác xử lý dữ liệu:

Từ những yêu cầu xử lý thực tế, cần tìm ra các giải thuật tương ứng để xác định trình tự các thao tác máy tính phải thi hành để cho ra kết quả mong muốn, đây là bước xây dựng giải thuật cho bài toán. Tuy nhiên khi giải quyết một bài toán trên máy tính, chúng ta thường có khuynh hướng chỉ chú trọng đến việc xây dựng giải thuật mà quên đi tầm quan trọng của việc tổ chức dữ liệu trong bài toán. Giải thuật phản ánh các phép xử lý , còn đối tượng xử lý của giải thuật lại là dữ liệu, chính dữ liệu chứa đựng các thông tin cần thiết để thực hiện giải thuật. Để xác định được giải thuật phù hợp cần phải biết nó tác động đến loại dữ liệu nào (ví dụ để làm nhuyễn các hạt đậu , người ta dùng cách xay chứ không băm bằng dao, vì đậu sẽ văng ra ngoài) và khi chọn lựa cấu trúc dữ liệu cũng cần phải hiểu rõ những thao tác nào sẽ tác động đến nó (ví dụ để biểu diễn các điểm số của sinh viên người ta dùng số thực thay vì chuỗi ký tự vì còn phải thực hiện thao tác tính trung bình từ những điểm số đó). Như vậy trong một đề án tin học, giải thuật và cấu trúc dữ liệu có mối quan hệ chặt chẽ với nhau, được thể hiện qua công thức :

 

Cấu trúc dữ liệu + Giải thuật = Chương trình

Với một cấu trúc dữ liệu đã chọn, sẽ có những giải thuật tương ứng, phù hợp. Khi cấu trúc dữ liệu thay đổi thường giải thuật cũng phải thay đổi theo để tránh việc xử lý gượng ép, thiếu tự nhiên trên một cấu trúc không phù hợp. Hơn nữa, một cấu trúc dữ liệu tốt sẽ giúp giải thuật xử lý trên đó có thể phát huy tác dụng tốt hơn, vừa đáp ứng nhanh vừa tiết kiệm vật tư, giải thuật cũng dễ hiễu và đơn giản hơn.

  • Đây là khoá học rất nền tảng và là bước đệm để các bạn tiến sâu hơn trong nghề nghiệp lập trình của mình. Các bạn học tốt môn này, các bạn nắm được các tư duy thuật toản, tư duy giải thuật, các bạn sẽ là một lập trình viên giỏi. Các tư duy này giúp bạn vận dụng để giải quyết các công việc, các bài toán, các nghiệp vụ trong tất cả phần mềm sau này
  • Việc học Cấu trúc dữ liệu và Thuật toán giúp bạn có một cái nhìn chuyên sâu, tối ưu hoá được nhiều vấn đề trong lập trình. Việc tối ưu hoá là cực kì quan trọng để các bạn xây dựng các phần mềm chạy nhanh, hiệu quả.
  • Trong hầu hết các bài PHỎNG VẤN để tuyển chọn người tài, các công ty đều kiểm tra khả năng xử lý và tư duy của các bạn thông qua các trường hợp từ môn học này. Một lập trình nhanh nhạy, một ứng cử viên sáng giá cho một vị trí tại công ty phụ thuộc vào khả năng bạn xử lý các vấn đề, tư duy giải quyết vấn đề dựa vào các thuật toán, thuật giải và tối ưu chương trình.
  • Khoá học được trình bày rất chi tiết với hầu hết các thuật toán và giải thuật thường gặp trong thực tế qua nhiều ví dụ minh hoạ dễ hiểu và vận dụng
  • Các thuật toán được trình bày, minh hoạ trực quan qua hệ thống khosinhvien.com để các bạn học một cách dễ hiểu nhất.

Đề cương khóa học

Chương 1: Làm thế nào để trở thành một Lập trình chuyên nghiệp

 Bài 1: Giới thiệu môn học

 Bài 2: Chia sẻ kinh nghiệm học lập trình & Học nhanh, nhớ lâu - P1

 Bài 2: Chia sẻ kinh nghiệm học lập trình & Học nhanh, nhớ lâu - P2

 Bài 2: Chia sẻ kinh nghiệm học lập trình & Học nhanh, nhớ lâu - P3

 Bài 3: Một số quan niệm Không đúng về lập trình

 Bài 4: Thuật toán

 Bài 5: Các phương pháp biểu diễn thuật toán - P1

 Bài 5: Các phương pháp biểu diễn thuật toán - P2

 Bài 5: Các phương pháp biểu diễn thuật toán - P3

 Bài 5: Các phương pháp biểu diễn thuật toán - Bài tập tự luyện

 Bài 6: Độ phức tạp của thuật toán + Bài tập tự luyện (7 bài)

 Bài New: Mối liên hệ giữa CTDL và GT

 Bài 7: Chuyển đổi dữ liệu bài toán sang dữ liệu chương trình & Nguyên tắc đặt biến, tổ chức dữ liệu - p1

 Bài 8: Chuyển đổi dữ liệu bài toán sang dữ liệu chương trình & Nguyên tắc đặt biến, tổ chức dữ liệu - p2

 Bài 9: Phân chia bài toán lớn thành các bài toán nhỏ

 Bài 10: Kỹ thuật gỡ rối - Debug chương trình

CHƯƠNG 2: TỔNG QUAN VỀ C++

 Link tải Visual studio 2015

 Bài 11: Cài đặt phần mềm

 Bài 12: Tạo chương trình “HellloWorld” C++ đầu tiên

 Bài 13: Một số ví dụ C++ đầu tiên

 Bài 14: Ôn tập các lệnh điều kiện qua các bài tập - Nhắc lại kiến thức

 Bài 14: Ôn tập các lệnh điều kiện qua các bài tập - Bài tập 1

 Bài 14: Ôn tập các lệnh điều kiện qua các bài tập - Bài tập 2

 Bài 14: Ôn tập các lệnh điều kiện qua các bài tập - Bài tập 3

 Bài 14: Ôn tập các lệnh điều kiện qua các bài tập - Bài tập 4

 Bài 14: Ôn tập các lệnh điều kiện qua các bài tập (switch-case)

 Bài 14: Ôn tập các lệnh điều kiện qua các bài tập (switch-case) - Bài tập 5

 Bài 14: Ôn tập các lệnh điều kiện qua các bài tập - 10 bài tập tự luyện (chấm cộng điểm + có giải)

 Bài 15: Ôn tập Vòng lặp & Bài tập - P1

 Bài 16: Ôn tập Vòng lặp & Bài tập - p2

 Bài 16: Ôn tập Vòng lặp & Bài tập - p3

 Bài 16: Ôn tập Vòng lặp & Bài tập - p4

 Bài 16: Ôn tập Vòng lặp While - P5

 Bài 16: Ôn tập Vòng lặp Do-While - P6

 Bài 16: Ôn tập Vòng lặp While - Bài tập - P7

 Bài 16: Ôn tập Vòng lặp While - Do While - Bài -tập - P8

 Bài 16: Ôn tập Vòng lặp lồng nhau - P9

 Bài 16: Ôn tập Vòng lặp Bài tập vẽ hình sử dụng vòng lặp lồng nhau - P10

 Bài 16: Ôn tập Vòng lặp Bài tập vẽ hình sử dụng vòng lặp lồng nhau - P11

 Bài 17: Ôn tập Hàm & Bài tập - p1

 Bài 18: Ôn tập Hàm & Bài tập - p2

 Bài 19: Ôn tập Hàm & Bài tập - p3

 Bài 20: Ôn tập Hàm & Bài tập - p4

 Bài 21: Ôn tập Hàm & Bài tập - p5

 Bài 21-6: Ôn tập Hàm & Bài tập - p6

 Bài 21-7: Ôn tập Hàm & Bài tập - p7

 Bài 21-8: Ôn tập Hàm & Bài tập - p8

 Bài 21-9: Ôn tập Hàm & Bài tập - p9

 Bài 21-10: Ôn tập Hàm & Bài tập - p10

 Bài 21-11: Ôn tập Hàm & Vòng lặp - Bài tập tự luyện

CHƯƠNG 3: CON TRỎ VÀ MẢNG

 Bài 22.1: Con trỏ - Cốt lõi về con trỏ

 Bài 22.2: Con trỏ - Khái niệm Con trỏ

 Bài 22.3: Con trỏ - Các biến Con trỏ

 Bài 22.4: Con trỏ - Con trỏ trỏ đến con trỏ

 Bài 22.5: Con trỏ - ĐỪNG NHẦM LẪN

 Bài 22.6: Con trỏ - Bài tập con trỏ

 Bài 22.7: Con trỏ - Bài tập con trỏ - tt

 Bài 23: Con trỏ - Biến Tham chiếu

 Bài 24: Con trỏ - Phép toán số học trên con trỏ

 Bài 25: Con trỏ - Phép toán số học trên con trỏ - p2

 Bài 26: Con trỏ - Cấp phát bộ nhớ động trong C - p1

 Bài 26: Con trỏ - Cấp phát bộ nhớ động trong C - p2

 Bài 26: Con trỏ - Cấp phát bộ nhớ động trong C++

 Bài 26: Con trỏ - Các loại con trỏ đặc biệt

 Bài 27: Mảng một chiều - Giới thiệu - tính chất - cú pháp

 Bài 27.1: Mảng một chiều - Ví dụ minh họa

 (Bổ sung thêm) - MẢNG - CHỈ CODE - KO THU ÂM

 (Bổ sung thêm) - Mảng - Chiến lược Min - Max

 (Bổ sung thêm) - Mảng - xử lý với mọi và tồn tại - Chỉ code

 Bài 28: Mảng 2 chiều - Khai báo

 Bài 29: Mảng 2 chiều - Truy xuất - Gán

 Bài 30: Mảng 2 chiều - truyền mảng cho hàm

 Bài 31: Mảng 2 chiều - Nhập dữ liệu cho mảng

 Bài 32: Mảng 2 chiều - Xuất và Tìm kiếm phần tử

 32.1: Mảng 2 chiều - Kiểm tra nguyên tố

 32.2: Mảng 2 chiều - Kiểm tra nguyên tố - Cách 2

 32.3: Mảng 2 chiều - Kiểm tra nguyên tố - Cách 3

 32.4: Mảng 2 chiều - Tính tổng - p1

 32.5 Mảng 2 chiều - Tính tổng - p2

 32.6 - Mảng 2 chiều - End

CHƯƠNG 4: ÔN TẬP VỀ LỚP &, HƯỚNG ĐỐI TƯỢNG C++

 Bài 33: Lập trình Hướng Đối Tượng phần 1

 Bài 34: Lập trình Hướng Đối Tượng - Phần 2

 Bài 35: Lập trình HĐT - Phần 3

 Bài 36: Lập trình HĐT - Phần 4 - Coming soon

CHƯƠNG 5: CÁC THUẬT TOÁN SẮP XẾP

 Bài 37: Giới thiệu các thuật toán sắp xếp

 Bài 38: Demo thuật toán sắp xếp InterchangeSort

 Bài 39: Cài đặt thuật toán InterchangeSort - phần 1

 Bài 39: Cài đặt thuật toán InterchangeSort - phần 2

 Bài 39: Chạy tay để hiểu rõ thuật toán InterchangeSort

 Bài 40: Phân tích độ phức tạp thuật toán InterchangeSort

 Bài 41: Bài tập tự luyện - Thuật toán InterchangeSort

 Bài 42: Demo thuật toán sắp xếp Selection Sort (Chọn trực tiếp) - P1

 Bài 42: Demo thuật toán sắp xếp Selection Sort (Chọn trực tiếp) - P2

 Bài 43: Thuật toán sắp xếp Selection Sort (Chọn trực tiếp) – P3

 Bài 44: Thuật toán sắp xếp Selection Sort (Chọn trực tiếp) – P4

 Bài 45: Thuật toán sắp xếp Bubble Sort (Sắp xếp nổi bọt) - P1

 Bài 46: Thuật toán sắp xếp Bubble Sort (Sắp xếp nổi bọt) – P2

 Bài 47: Bài bổ sung NEW: Thuật toán Chèn trực tiếp - Insertion sort - P1

 Bài 48: Bài bổ sung NEW: Thuật toán Chèn trực tiếp - Insertion sort - P2

 Bài 49: Bài bổ sung NEW: Thuật toán Chèn trực tiếp - Insertion sort - P3

 Bài bổ sung NEW: Thuật toán Shell sort - P1

 Bài bổ sung NEW: Thuật toán Shell sort - P2

 Bài bổ sung NEW: Thuật toán Shell sort - P3

 Bài 50: Khái niệm cấu trúc cây (Tree) căn bản - Phần 1

 Bài 51: Khái niệm cấu trúc Cây (Tree) căn bản - phần 2

 Bài 52: Khái niệm Cây Nhị Phân căn bản

 Bài 53.1 : Thuật toán HeapSort - Phần 1

 Bài 53.2 : Thuật toán HeapSort - Phần 2

CHƯƠNG 6: ĐỆ QUY VÀ QUAY LUI

 Bài 64: Đệ qui là gì, khái niệm

 Bài 65: Minh hoạ đệ qui và bộ nhớ (trực quan)

 Bài 66: Bài tập Fibonacci bằng Đệ Quy

 Bài 67: Ưu nhược điểm của Đệ Quy - Câu hỏi phỏng vấn

 Bài 68: Các loại đệ quy

 Bài 69: Bài tập đệ qui - bài 1

 Bài 70: Bài tập đệ qui - bài 2

 Bài 71: Bài tập đệ qui - bài 3&4

 Bài 72: Bài tập đệ qui - Tháp Hà Nội (HaNoi Tower)

 Bài 73: Bài tập đệ qui - 15 bài tập tự luyện (Có chấm điểm)

CHƯƠNG 7: CÁC THUẬT TOÁN SẮP XẾP NÂNG CAO

 Bài 74: Ý tưởng thuật toán sắp xếp QuickSort - Sắp xếp nhanh

 Bài 75: Chạy tay thuật toán Quicksort - Sắp xếp nhanh

 Bài 76: Minh họa động thuật toán Quicksort - sắp xếp nhanh

 Bài 77: Cài đặt thuật toán Quicksort - Sắp xếp nhanh ( Đệ quy)

 Bài 78: Giải thuật MergeSort - Sắp xếp trộn

CHƯƠNG 6: THUẬT TOÁN TÌM KIẾM - TÌM KIẾM TUYẾN TÍNH

 Bài 1: Tìm kiếm tuyến tính - Phần 1

 Bài 2: Tìm kiếm tuyến tính - Phần 2

CHƯƠNG 7: THUẬT TOÁN TÌM KIẾM - TÌM KIẾM NHỊ PHÂN

 Tìm kiếm Nhị Phân

CHƯƠNG 10: CÁC THAO TÁC TRÊN CÂY NHỊ PHÂN TÌM KIẾM & CÂY AVL

 Bài 1: Giới thiệu Cây Nhị Phân Tìm Kiếm & Phương pháp duyệt

 Bài 2: Duyệt cây - P2

 Bài 3: Duyệt cây - P3

 Bài 4: Tạo cây

 Bài 5: Tìm kiếm trên cây

 Bài 6: Chèn phần tử x vào cây

 Bài 7: Hủy phần tử có khóa x

 Bài 8: Hủy phần tử

 Bài 9: Cây AVL - Giới thiệu

 Bài 10: Cây AVL - Phần 2

 Bài 11: Cây AVL - Phần 3

 Bài 12: Cây AVL - Phần 4

 Bài 13: Cây AVL - Phần 5

 Bài 14: Cây AVL - Phần 6

 Bài 15: Cây AVL - Phần 7

 Cây AVL - Phần cuối

CHƯƠNG 10: CÂY ĐỎ ĐEN

 Bài 98: Giới thiệu

 Bài 99: Ý tưởng thuật toán & demo

 Bài 100: Các thao tác trên cây ĐỎ ĐEN

 Bài 101: Phân tích và chạy tay thuật toán

 Bài 102: MỘT SỐ BÀI TẬP

 Bài 103: BÀI TẬP LUYỆN TẬP

CHƯƠNG 11: B TREE

 0 phút

 Bài 104: Giới thiệu

 Bài 105: Ý tưởng thuật toán & demo

 Bài 106: Các thao tác trên BTREE

 Bài 107: Phân tích và chạy tay thuật toán

 Bài 108: MỘT SỐ BÀI TẬP

 Bài 109: BÀI TẬP LUYỆN TẬP

CHƯƠNG 12: TOÀN TẬP VỀ DANH SÁCH LIÊN KẾT - LINKED LIST

 Bài 1: Giới thiệu về Danh sách liên kết - p1

 Bài 2: Giới thiệu về Danh sách liên kết - p2

 Bài 3: Khai báo - Danh sách liên kết

 Bài 4: Khai báo - Tạo node mới - Danh sách liên kết

 Bài 5: Danh sách liên kết đơn - Các thao tác cơ sở - P1

 Bài 6: Danh sách liên kết đơn - Các thao tác cơ sở - P2

 Bài 7: Danh sách liên kết đơn - Thêm sau phần tử q + duyệt list

 Bài 8: Danh sách liên kết đơn - Tìm phần tử

 Bài 9: Danh sách liên kết đơn - Xóa phần tử

 Bài 10: Danh sách liên kết đơn - xóa sau node q

 Bài 11: Danh sách liên kết đơn - Xóa node với khóa k

 Bài 12: Danh sách liên kết đơn - Xóa toàn bộ list

 Bài 13: Danh sách liên kết đôi - Khai báo – Tạo node mới

 Bài 14: Danh sách liên kết đôi - Thêm vào đầu danh sách

 Bài 15: Danh sách liên kết đôi - Thêm cuối danh sách

 Bài 16: Danh sách liên kết đôi - Chèn sau phần tử q

 Bài 17: DSLK Đôi - Chèn trước phần tử q

 Bài 18: DSLK Đôi - Hủy đầu danh sách

 Bài 19: DSLK Đôi - Hủy cuối danh sách

 Bài 20: DSLK Đôi - Hủy phần tử có khóa k

 Bài 21: Danh sách liên kết vòng

CHƯƠNG 14: DỰ ÁN 1 : TỪ ĐIỂN SỬ DỤNG CÂY NHỊ PHÂN TÌM KIẾM

Học Online: Tại đây

Google Driver   |   Mshare ( Tốc độ cao )

Pass giải nén: khosinhvien.com

Hướng dẫn getlink tại kho Sinh Viên  tại đây hoặc xem hình ảnh mịnh họa dưới

Nguồn Kho Sinh Viên - Tất cả dữ liệu chia sẽ hoàn toàn miễn phí