📜  “GeeksforGeeks 和 ACM VIT 协会 – 2018 年 3 月”(1)

📅  最后修改于: 2023-12-03 14:48:44.263000             🧑  作者: Mango

GeeksforGeeks 和 ACM VIT 协会 – 2018 年 3 月

GeeksforGeeks 是一个面向程序员的教育和招聘门户网站,旨在帮助程序员学习和提高他们的编程技能。ACM VIT 协会是 VIT 大学的计算机协会,致力于提高学生在计算机科学领域的技能和知识。在 2018 年 3 月,这两个组织合作举办了一场研讨会,旨在为学生和其他与会者提供一个学习和交流的平台。

主题

研讨会的主题是“算法和数据结构”。研讨会着重介绍了一些经典的算法和数据结构,如排序算法、查找算法、树、图等等。与会者还可以通过示例代码和练习题来加深对这些概念的理解。

排序算法

研讨会介绍了三种经典的排序算法:冒泡排序、插入排序和快速排序。这些算法在不同场景下的表现各不相同,但它们共同的特点是它们都是基于比较的排序算法,都需要 O(n^2) 或 O(nlogn) 的时间复杂度。

# 快速排序
def quick_sort(arr):
    if len(arr) < 2:
        return arr

    pivot = arr[0]
    less = [i for i in arr[1:] if i <= pivot]
    greater = [i for i in arr[1:] if i > pivot]

    return quick_sort(less) + [pivot] + quick_sort(greater)
数据结构

研讨会还介绍了两种经典的数据结构:树和图。这两种数据结构可以用来表示各种复杂的关系和层次结构,并且在算法和程序设计中得到广泛应用。例如,这些结构可用于搜索算法、最短路径算法、网络流算法等等。

# 树
class TreeNode:
    def __init__(self, val):
        self.val = val
        self.left = None
        self.right = None

    def __str__(self):
        return str(self.val)

tree = TreeNode(1)
tree.left = TreeNode(2)
tree.right = TreeNode(3)
结论

通过此次研讨会,与会者可以掌握一些经典的算法和数据结构,并了解它们在程序设计和算法中的应用。此外,通过研讨会组织的交流和讨论,与会者还可以与其他程序员交流经验和建立网络。