Cấu trúc dữ liệu và thuật toán python github

Đây là khóa học cơ bản giúp bạn chuẩn bị cho các cuộc phỏng vấn kỹ thuật và đạt được công việc mơ ước của mình

Nhận toàn bộ khóa học, bao gồm nội dung video đầy đủ, hướng dẫn giải pháp, diễn đàn thảo luận, hỗ trợ người hướng dẫn, v.v. chỉ với $20 bằng cách sử dụng liên kết giảm giá

Đây là kho lưu trữ của tôi về Cấu trúc dữ liệu và thuật toán sử dụng Python. Tất cả các triển khai chỉ dành cho mục đích học tập và nghiên cứu

Bharathi kannan Portfolio LinkedIn
Tiếp tục viết mã. . ]

Hiển thị một số❤️bằng cách gắn dấu sao cho kho lưu trữ này

Trong kho lưu trữ này

Cấu trúc dữ liệu và thuật toán

  • Danh sách liên kết
  • Cây rơm
  • Xếp hàng
  • Bảng băm
  • đống
  • Trie
  • Cây
  • Biểu đồ -> Đang tiến hành
  • Lập trình năng động
  • tìm kiếm
  • Sắp xếp

độ phức tạp lớn O

  • Cấu trúc dữ liệu chung
  • thuật toán sắp xếp

Các công cụ và trang web hữu ích

  • Công cụ trực quan
  • trang web
  • Bảng gian lận
  • Các khóa học trực tuyến miễn phí
Danh sách liên kết
  • Danh sách liên kết
    • phương pháp có sẵn
      • delete[] - Xóa dữ liệu ở vị trí bất kỳ
      • deleteAlternateNodes[] - Xóa các nút thay thế
      • deleteGreaterValuesOnRight[] - Xóa một phần tử nếu nút bên phải của nó lớn hơn nó
      • deleteList[] - Xóa toàn bộ danh sách liên kết
      • getCountOfValue[] - Lấy số lượng dữ liệu trong danh sách liên kết
      • getMiddleElement[] - Lấy phần tử ở giữa
      • ifNodeExists[] - Nếu dữ liệu tồn tại trong bất kỳ nút nào [Phương thức tìm kiếm]
      • insertAtFirst[] - Chèn phần tử vào đầu danh sách liên kết
      • insertAtLast[] - Chèn dữ liệu cuối cùng
      • insertAtPosition[] - Chèn dữ liệu tại một vị trí cụ thể
      • isFirstSecondHalfMatch[] - Hiệp một và hiệp hai có khớp nhau không
      • isPalindrome[] - Trả về true nếu danh sách được liên kết là palindrome
      • length[] - Độ dài của LinkedList
      • moveLastNodeToFront[] - Di chuyển nút cuối cùng lên phía trước
      • pairwiseSwapElements[] - Hoán đổi các phần tử theo cặp
      • reverse[] - Đảo ngược danh sách liên kết
      • Reverse Recursion[] - Chức năng đảo ngược tương tự sử dụng đệ quy
      • xoay AntiClockwise[] - Xoay ngược chiều kim đồng hồ
      • rotateCloclwise[] - Theo chiều kim đồng hồ trong danh sách liên kết
      • show[] - In tất cả các phần tử của danh sách liên kết

  • Danh sách liên kết kép
    • phương pháp có sẵn
      • delete[] - Xóa một phần tử
      • deleteList - Xóa toàn bộ danh sách liên kết kép
      • insertAtFirst[] - Chèn lúc đầu
      • insertAtLast[] - Chèn nút cuối cùng
      • insertAtPosition[] - Chèn tại một vị trí nhất định
      • length[] - Số nút trong danh sách liên kết kép của chúng tôi
      • reversePrint[] - In ngược lại tất cả các phần tử
      • show[] - Để in tất cả các phần tử

  • Hợp nhất hai danh sách liên kết được sắp xếp
  • Danh sách liên kết ngược
  • Xoay danh sách liên kết
    • phương pháp có sẵn
      • rotateClockwise[] - Xoay theo chiều kim đồng hồ
      • rotateAntiClocwise[] - Xoay ngược chiều kim đồng hồ

  • Sắp xếp danh sách liên kết
Cây rơm
  • Cây rơm
Xếp hàng
  • Xếp hàng
Bảng băm
  • Bảng băm
đống
  • đống
Trie
  • Trie
    • phương pháp có sẵn
      • add[] - Thêm từ để thử
      • search[] - Tìm kiếm các phần tử trong trie
      • show[] - Hiển thị tất cả các từ trong trie

Cây
  • Cây
  • Cây tìm kiếm nhị phân
    • phương pháp có sẵn
      • delete[] - Xóa toàn bộ cây
      • trống [] - Kiểm tra trống hay không
      • getDiffEvenOddRows[] - Sự khác biệt của các hàng chẵn và lẻ
      • getLevelOfNode[] -Nhận cấp dữ liệu
      • height[] - Chiều cao của cây
      • ifMirrorStructureTree[] - Nếu hai cây có cấu trúc gương hay không
      • if Mirror Tree[] - Nếu hai cây là gương hay không
      • ifSameStructureTree[] - Nếu hai cây có cùng cấu trúc hay không
      • ifSameTree[] - Nếu hai cây giống nhau hay không
      • đặt hàng - Inorder traversal
      • inorderUsingStack[] - Truyền tải thứ tự bằng cách sử dụng ngăn xếp
      • insert[] - Chèn dữ liệu vào BST
      • isFoldable[] - Cây có thể gập lại được hay không
      • isIdentical[] - Hai cây có giống nhau hay không
      • leftSideOfTree[] - Bên trái của cây
      • levelOrderTraversal[] -In các giá trị theo thứ tự cấp độ
      • levelOrderTraversalLineByLine[] - Trình duyệt thứ tự cấp độ theo từng dòng
      • levelWiseSum[] - Tổng của tất cả dữ liệu trong mỗi cấp độ
      • maxWidth[] - Nhận chiều rộng tối đa của cây
      • mirrorTree[] - Phản chiếu cây
      • noOfNodes[] - Không có nút nào trong cây
      • noofLeafNodes - Số nút lá
      • postorder[] - Truyền tải sau khi đặt hàng
      • preorder[] - Truyền tải đơn đặt hàng trước
      • printAtGivenLevel[] - Chỉ in các giá trị ở một mức nhất định
      • printBetweenTwoLevels[] - In dữ liệu giữa hai cấp bất kỳ
      • printLeaves[] - In nút lá
      • recursiveSearch[] - Tìm kiếm bằng đệ quy
      • reverseLevelOrderTraversal[] - Đảo ngược thứ tự cấp độ
      • rightSideOfTree[] - Bên phải của cây
      • search[] - Trả về true nếu một phần tử tồn tại
      • xoắn ốcOrder[] -In theo thứ tự xoắn ốc
      • sum[] - Tổng của tất cả các giá trị

  • Cây AVL
  • Cây Đỏ Đen
đồ thị

Trong tiến trình

Lập trình năng động
  • Chỉnh sửa khoảng cách - Số lượng khoảng cách chỉnh sửa cần thiết để thay đổi chuỗi này sang chuỗi khác
  • Thả trứng - Tối thiểu không cần thử nghiệm trong trường hợp xấu nhất để tìm ra sàn nơi trứng vỡ
  • Dãy Fibonacci - Tạo dãy Fibonacci
  • Tạo dấu ngoặc đơn - Tạo dấu ngoặc đơn phù hợp với n số dấu ngoặc mở và đóng
  • Thuật toán Kadane - Bài toán mảng con lớn nhất
  • Knapsack 0/1 - vấn đề về ba lô 0/1
  • Dãy con chung dài nhất - Dãy con chung dài nhất của hai xâu
  • Số xu tối thiểu - Số xu tối thiểu cần thiết để tạo ra số tiền nhất định
  • Truy vấn tổng phạm vi - Trả về tổng giữa hai chỉ số
tìm kiếm
  • tìm kiếm tuyến tính
  • Tìm kiếm nhị phân
Sắp xếp
  • sắp xếp bong bóng
  • Sắp xếp chèn
  • Hợp nhất Sắp xếp
  • Sắp xếp nhanh chóng
  • sắp xếp lựa chọn
Tổ hợp Big O

Hoạt động cấu trúc dữ liệu chung

Cấu trúc dữ liệu Độ phức tạp của thời gian Độ phức tạp của không gian Trung bình Tồi tệ nhấtTruy cậpTìm kiếmChènXóaTruy cậpTìm kiếmChènXóaMảngΘ[1]Θ[n]Θ[n]Θ[n]O[1]O[n]O[n]O[n]O[n]Ngăn xếpΘ[n]Θ[n]Θ[1

Thuật toán sắp xếp mảng

Thuật toán Độ phức tạp thời gian Độ phức tạp không gian Trung bình tốt nhấtTồi tệ nhấtSắp xếp nhanhΩ[n log[n]]Θ[n log[n]]O[n^2]O[log[n]]Sáp nhậpΩ[n log[n]]Θ[n log[n]]O[n

Công cụ trực quan

  • Trực quan hóa cấu trúc dữ liệu -Hoạt ảnh tương tác cho nhiều cấu trúc dữ liệu và thuật toán
  • Visualgo Trực quan hóa cấu trúc dữ liệu và thuật toán
  • Trực quan hóa tương tác của các thuật toán đồ thị - Cây mở rộng, Đường dẫn ngắn nhất, Lưu lượng mạng và Định tuyến
  • Thuật toán sắp xếp Trực quan hóa - Hình ảnh động đơn giản cho thuật toán sắp xếp
  • Hướng dẫn trực quan về các thuật toán duyệt đồ thị - Tài nguyên này có tính tương tác và người đọc có thể sử dụng các hình ảnh trực quan để xem cách các thuật toán có thể được áp dụng cho các đồ thị tìm kiếm và giải quyết các vấn đề nhất định
  • Algorithm Visualizer - Đây là một nền tảng trực tuyến tương tác trực quan hóa thuật toán từ mã
  • Hacker Earth - Sử dụng tab Visualizer trong mỗi thuật toán sắp xếp

trang web

  • chuyên viên máy tính cho chuyên viên máy tính
  • Lộ trình cấu trúc dữ liệu - zerotomastery
  • Trại mã miễn phí
  • W3Schools
  • Khan Academy - Các thuật toán khoa học máy tính cơ bản, bao gồm tìm kiếm, sắp xếp, đệ quy và lý thuyết đồ thị
  • Danh sách cấu trúc dữ liệu - Wikipedia

cheatsheets

  • Big O cheatsheet - Trang web này đề cập đến không gian và thời gian Sự phức tạp của Big-O của các thuật toán phổ biến được sử dụng trong Khoa học Máy tính
  • Thuật toán và cấu trúc dữ liệu cheatsheet - Thuật toán tái bản lần thứ 4, Robert Sedgewick và Kevin Wayn, đại học Princeton
  • Chủ đề Reddit

Các khóa học trực tuyến miễn phí

  • Các thuật toán, Phần I - Coursera - Phần I bao gồm các cấu trúc dữ liệu cơ bản, thuật toán sắp xếp và tìm kiếm
  • Các thuật toán, Phần II - Coursera - Phần II tập trung vào các thuật toán xử lý chuỗi và đồ thị

Động lực

Repo này được lấy cảm hứng từ repo trước đây của tôi về Cấu trúc dữ liệu và thuật toán trong Java

Chủ Đề