文章分类 -  算法

摘要:a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] odd, even = print(odd, even) 方式一 odd, even = a[::2], a[1::2] print(odd, even ) 方式二 odd, even = [el for el in a if 阅读全文
posted @ 2022-02-25 22:47 下个ID见 阅读(82) 评论(0) 推荐(0)
摘要:链表是一个特殊的数据结构,其中每个节点包含自己的数据以及下一个值的引用(指针),链表的逆置就是指将链表下一个值的引用(指针)调换 1,单向链表 2,双向链表 3,双向环状链表 构造链表 class Node(object): def __init__(self, value, next): self 阅读全文
posted @ 2022-01-22 23:51 下个ID见 阅读(23) 评论(0) 推荐(0)
摘要:三种排序算法的时间复杂度都是O(nlogn) 一般情况下,就运算时间而言: **快速排序 < 归并排序 < 堆排序 ** 三种排序算法的缺点: 快速排序:极端情况下排序效率低 归并排序:需要额外的内存开销 堆排序:在快的排序算法中相对较慢 阅读全文
posted @ 2022-01-03 23:09 下个ID见 阅读(66) 评论(0) 推荐(0)
摘要:def merge(li, low, mid, high): i = low j = mid + 1 ltmp = [] while i <= mid and j <= high: if li[i] <= li[j]: ltmp.append(li[i]) i += 1 else: ltmp.app 阅读全文
posted @ 2022-01-03 23:03 下个ID见 阅读(25) 评论(0) 推荐(0)
摘要:import random def sift(data, low, high): """ :param data: 列表 :param low: 堆的根节点位置 :param high: 堆的高度 :return: """ i = low # 最开始指向根的节点 j = 2 * i + 1 # j 阅读全文
posted @ 2022-01-03 22:55 下个ID见 阅读(29) 评论(0) 推荐(0)
摘要:一个简单,耗时的快排, def querysocrt(array): if len(array) < 2: return array privo = array[0] less = [i for i in array[1:] if i <= privo] greate = [i for in in 阅读全文
posted @ 2021-12-01 00:02 下个ID见 阅读(56) 评论(0) 推荐(0)
摘要:斐波拉契数列的定义(即 f(n)=f(n-1)+f(n−2)) >>> def fib(n): if n <= 2: return 1 return fib(n-1) + fib(n-2) >>> [fib(i) for i in range(1,10)] [1, 1, 2, 3, 5, 8, 13 阅读全文
posted @ 2021-11-23 21:52 下个ID见 阅读(106) 评论(0) 推荐(0)
摘要:几个基本的算法 1,快排 >>> def querysocrt(array): if len(array) < 2: return array privo = array[0] less = [i for i in array[1:] if i <= privo] greater = [i for 阅读全文
posted @ 2021-11-10 23:07 下个ID见 阅读(99) 评论(0) 推荐(0)