Data Structures and Sort Algorithms Notes for Coding Interview

🥥 Table of Content

🥑 Get Started!

I. Top 8 Data Sturctures for Coding Interviews

0. Common Data Structure Operations Time Complexity

Data Structure Time Complexity(Worst) Space Complexity(Worst)
Access Search Insert Delete
Array O(1) O(n) O(n) O(n) O(n)
Linked List
HashMap
Queue
Binary Tree
Tries
Heap
Graph

1. Array

2. Linked list

3. HashMap

4. Queue

5. Binary Tree

6. Tries

7. Heap

8. Graph

II. Sort Algorithms

  • [Merge Sort]

image

class Solution:
    def merge(self, arr, l, m, r):
        # the length of the left and the right
        n1 = m - l + 1
        n2 = r - m

        # 创建临时数组
        L = [0] * (n1)
        R = [0] * (n2)

        # 拷贝数据到临时数组 arrays L[] 和 R[]
        for i in range(0, n1):
            L[i] = arr[l + i]

        for j in range(0, n2):
            R[j] = arr[m + 1 + j]

            # 归并临时数组到 arr[l..r]
        i = 0  # 初始化第一个子数组的索引
        j = 0  # 初始化第二个子数组的索引
        k = l  # 初始归并子数组的索引

        while i < n1 and j < n2:
            if L[i] <= R[j]:
                arr[k] = L[i]
                i += 1
            else:
                arr[k] = R[j]
                j += 1
            k += 1

        # 拷贝 L[] 的保留元素
        while i < n1:
            arr[k] = L[i]
            i += 1
            k += 1

        # 拷贝 R[] 的保留元素
        while j < n2:
            arr[k] = R[j]
            j += 1
            k += 1

    def mergeSort(self, arr, l, r):
        if l < r:
            m = l + (r - l) // 2

            self.mergeSort(arr, l, m)
            self.mergeSort(arr, m + 1, r)
            self.merge(arr, l, m, r)



if __name__ == '__main__':
    arr = [12, 11, 13, 5, 6, 7]
    n = len(arr)

    print("给定的数组")
    for i in range(n):
        print("%d" % arr[i]),

    solution = Solution()
    result = solution.mergeSort(arr, 0, n - 1)

    print("\n\n排序后的数组")
    for i in range(n):
        print("%d" % arr[i])
posted @   ForHHeart  阅读(13)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 我与微信审核的“相爱相杀”看个人小程序副业
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· spring官宣接入deepseek,真的太香了~
点击右上角即可分享
微信分享提示