首页 > 编程知识 正文

数据结构与算法常见问题,python常见数据结构和算法

时间:2023-05-03 07:16:53 阅读:232071 作者:2256

0. 数据结构定义

堆栈:list 原生即可支持堆栈操作:

list.append():入栈;list.pop():出栈;not list:堆栈是否为空;

链表节点:

class ListNode(object): def __init__(self, x): self.val = x self.next = None 1. 链表

翻转链表:

def reverseList(head):cur, prev = head, Nonewhile cur:cur.next, prev, cur = prev, cur, cur.nextreturn prev# 跳出while循环时,cur 为 None 2. 排序

快速排序(quick sort)

形式一:借助 partition 辅助函数 def partition(seq): pivot, seq = seq[0], seq[1:] low = [x for x in seq if x <= pivot] high = [x for x in seq if x not in low] return low, pivot, highdef qsort(seq): if len(seq) <= 1: return seq low, pivot, high = partition(seq) return qsort(low)+[pivot]+qsort(high) 形式二:直接返回数组 def qsort(arr):if len(arr) <= 1:return arrpivot = arr[len(arr)//2]left = [x for x in arr if x < pivot]middle = [x for x in arr if x == pivot]right = [x for x in arr if x > pivot]return qsort(left) + middle + qsort(right)

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。